Rev 1009: Add explicit types to make pyrex code faster. in file:///data/jelmer/bzr-svn/pyrex/
Jelmer Vernooij
jelmer at samba.org
Tue Mar 18 17:20:00 GMT 2008
At file:///data/jelmer/bzr-svn/pyrex/
------------------------------------------------------------
revno: 1009
revision-id:jelmer at samba.org-20080318171959-v0t1pktlya2g1fs4
parent: jelmer at samba.org-20080318152003-1iubuswnznx21nz0
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: pyrex
timestamp: Tue 2008-03-18 18:19:59 +0100
message:
Add explicit types to make pyrex code faster.
modified:
client.pyx client.pyx-20080313235339-wbyjbw2namuiql8f-1
core.pyx core.pyx-20080313210413-17k59slolpfe5kdq-1
ra.pyx ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
wc.pyx wc.pyx-20080313142018-10l8l23vha2j9e6b-1
=== modified file 'client.pyx'
--- a/client.pyx 2008-03-18 02:07:16 +0000
+++ b/client.pyx 2008-03-18 17:19:59 +0000
@@ -227,11 +227,11 @@
self.client.log_msg_baton2 = <void *>func
self.callbacks.append(func)
- def add(self, path, recursive=True, force=False, no_ignore=False):
+ def add(self, char *path, int recursive=True, int force=False, int no_ignore=False):
check_error(svn_client_add3(path, recursive, force, no_ignore,
self.client, self.pool))
- def checkout(self, url, path, peg_rev=None, rev=None, recurse=True,
+ def checkout(self, char *url, char *path, peg_rev=None, rev=None, recurse=True,
ignore_externals=False):
cdef svn_revnum_t result_rev
cdef svn_opt_revision_t c_peg_rev, c_rev
@@ -242,7 +242,7 @@
ignore_externals, self.client, self.pool))
return result_rev
- def commit(self, targets, recurse=True, keep_locks=True):
+ def commit(self, targets, int recurse=True, int keep_locks=True):
cdef svn_commit_info_t *commit_info
commit_info = NULL
check_error(svn_client_commit3(&commit_info,
@@ -258,7 +258,7 @@
self.client, self.pool))
return py_commit_info_tuple(commit_info)
- def delete(self, paths, force=False):
+ def delete(self, paths, int force=False):
cdef svn_commit_info_t *commit_info
commit_info = NULL
check_error(svn_client_delete2(&commit_info,
@@ -266,7 +266,7 @@
force, self.client, self.pool))
return py_commit_info_tuple(commit_info)
- def copy(self, src_path, dst_path, src_rev=None):
+ def copy(self, char *src_path, char *dst_path, src_rev=None):
cdef svn_commit_info_t *commit_info
cdef svn_opt_revision_t c_src_rev
to_opt_revision(src_rev, &c_src_rev)
@@ -275,15 +275,15 @@
&c_src_rev, dst_path, self.client, self.pool))
return py_commit_info_tuple(commit_info)
- def propset(self, propname, propval, target, recurse=True,
- skip_checks=False):
+ def propset(self, char *propname, char *propval, char *target, int recurse=True,
+ int skip_checks=False):
cdef svn_string_t c_propval
c_propval.data = propval
c_propval.len = len(propval)
check_error(svn_client_propset2(propname, &c_propval,
target, recurse, skip_checks, self.client, self.pool))
- def propget(self, propname, target, peg_revision=None, revision=None,
+ def propget(self, char *propname, char *target, peg_revision=None, revision=None,
recurse=False):
cdef svn_string_t c_propval
cdef svn_opt_revision_t c_peg_rev
@@ -295,7 +295,7 @@
&c_peg_rev, &c_rev, recurse, self.client, self.pool))
return prop_hash_to_dict(hash_props)
- def update(self, paths, rev=None, recurse=True, ignore_externals=False):
+ def update(self, paths, rev=None, int recurse=True, int ignore_externals=False):
cdef apr_array_header_t *result_revs
cdef svn_opt_revision_t c_rev
cdef svn_revnum_t *ret_rev
@@ -310,7 +310,7 @@
ret_rev = <svn_revnum_t *>apr_array_pop(result_revs)
return ret
- def revprop_get(self,propname, propval, url, rev=None):
+ def revprop_get(self, char *propname, char *propval, char *url, rev=None):
cdef svn_revnum_t set_rev
cdef svn_opt_revision_t c_rev
cdef svn_string_t *c_val
@@ -319,7 +319,7 @@
&c_rev, &set_rev, self.client, self.pool))
return (PyString_FromStringAndSize(c_val.data, c_val.len), set_rev)
- def revprop_set(self,propname, propval, url, rev=None, force=False):
+ def revprop_set(self, char *propname, char *propval, char *url, rev=None, int force=False):
cdef svn_revnum_t set_rev
cdef svn_opt_revision_t c_rev
cdef svn_string_t c_val
@@ -331,7 +331,7 @@
return set_rev
def log(self, targets, callback, peg_revision=None, start=None, end=None,
- limit=0, discover_changed_paths=True, strict_node_history=True):
+ int limit=0, int discover_changed_paths=True, int strict_node_history=True):
cdef svn_opt_revision_t c_peg_rev, c_start_rev, c_end_rev
to_opt_revision(peg_revision, &c_peg_rev)
to_opt_revision(start, &c_start_rev)
=== modified file 'core.pyx'
--- a/core.pyx 2008-03-17 22:28:17 +0000
+++ b/core.pyx 2008-03-18 17:19:59 +0000
@@ -83,7 +83,7 @@
svn_error_t *svn_time_from_cstring(apr_time_t *when, char *data,
apr_pool_t *pool)
-def time_to_cstring(when):
+def time_to_cstring(int when):
"""Convert a UNIX timestamp to a Subversion CString."""
cdef apr_pool_t *pool
pool = Pool(NULL)
@@ -91,7 +91,7 @@
apr_pool_destroy(pool)
return ret
-def time_from_cstring(data):
+def time_from_cstring(char *data):
"""Parse a Subversion time string and return a UNIX timestamp."""
cdef apr_time_t when
cdef apr_pool_t *pool
=== modified file 'ra.pyx'
--- a/ra.pyx 2008-03-18 15:20:03 +0000
+++ b/ra.pyx 2008-03-18 17:19:59 +0000
@@ -57,7 +57,7 @@
ctypedef struct svn_delta_editor_t:
svn_error_t *(*set_target_revision)(void *edit_baton,
- svn_revnum_t target_revision, apr_pool_t *pool)
+ svn_revnum_t target_revision, apr_pool_t *pool) except *
svn_error_t *(*open_root)(void *edit_baton, svn_revnum_t base_revision,
apr_pool_t *dir_pool, void **root_baton)
@@ -336,15 +336,15 @@
cdef void *report_baton
cdef apr_pool_t *pool
- def set_path(self, path, revision, start_empty, lock_token):
+ def set_path(self, char *path, int revision, int start_empty, char *lock_token):
check_error(self.reporter.set_path(self.report_baton, path, revision,
start_empty, c_lock_token(lock_token), self.pool))
- def delete_path(self, path):
+ def delete_path(self, char *path):
check_error(self.reporter.delete_path(self.report_baton, path,
self.pool))
- def link_path(self, path, url, revision, start_empty, lock_token):
+ def link_path(self, char *path, char *url, int revision, int start_empty, char *lock_token):
check_error(self.reporter.link_path(self.report_baton, path, url,
revision, start_empty, c_lock_token(lock_token), self.pool))
@@ -367,7 +367,7 @@
cdef svn_delta_editor_t *editor
cdef apr_pool_t *pool
- def apply_textdelta(self, base_checksum=None):
+ def apply_textdelta(self, char *base_checksum=NULL):
cdef char *c_base_checksum
cdef svn_txdelta_window_handler_t txdelta_handler
cdef void *txdelta_baton
@@ -384,7 +384,7 @@
py_txdelta.txbaton = txdelta_baton
return py_txdelta
- def change_prop(self, name, value):
+ def change_prop(self, char *name, char *value):
cdef svn_string_t c_value, *p_c_value
if value is None:
p_c_value = NULL
@@ -395,7 +395,7 @@
check_error(self.editor.change_file_prop(self.file_baton, name,
p_c_value, self.pool))
- def close(self, checksum=None):
+ def close(self, char *checksum=NULL):
cdef char *c_checksum
if checksum is None:
c_checksum = NULL
@@ -409,11 +409,11 @@
cdef void *dir_baton
cdef apr_pool_t *pool
- def delete_entry(self, path, revision=-1):
+ def delete_entry(self, char *path, int revision=-1):
check_error(self.editor.delete_entry(path, revision, self.dir_baton,
self.pool))
- def add_directory(self, path, copyfrom_path=None, copyfrom_rev=-1):
+ def add_directory(self, char *path, char *copyfrom_path=NULL, int copyfrom_rev=-1):
cdef void *child_baton
cdef char *c_copyfrom_path
if copyfrom_path is None:
@@ -424,13 +424,13 @@
c_copyfrom_path, copyfrom_rev, self.pool, &child_baton))
return new_dir_editor(self.editor, child_baton, self.pool)
- def open_directory(self, path, base_revision=-1):
+ def open_directory(self, char *path, int base_revision=-1):
cdef void *child_baton
check_error(self.editor.open_directory(path, self.dir_baton,
base_revision, self.pool, &child_baton))
return new_dir_editor(self.editor, child_baton, self.pool)
- def change_prop(self, name, value):
+ def change_prop(self, char *name, char *value):
cdef svn_string_t c_value, *p_c_value
if value is None:
p_c_value = NULL
@@ -444,11 +444,11 @@
def close(self):
check_error(self.editor.close_directory(self.dir_baton, self.pool))
- def absent_directory(self, path):
+ def absent_directory(self, char *path):
check_error(self.editor.absent_directory(path, self.dir_baton,
self.pool))
- def add_file(self, path, copy_path=None, copy_rev=-1):
+ def add_file(self, char *path, char *copy_path=NULL, int copy_rev=-1):
cdef void *file_baton
cdef FileEditor py_file_editor
cdef char *c_copy_path
@@ -464,11 +464,9 @@
py_file_editor.pool = self.pool
return py_file_editor
- def open_file(self, path, base_revision=None):
+ def open_file(self, char *path, int base_revision=-1):
cdef void *file_baton
cdef FileEditor py_file_editor
- if base_revision is None:
- base_revision = -1
check_error(self.editor.open_file(path, self.dir_baton,
base_revision, self.pool, &file_baton))
py_file_editor = FileEditor()
@@ -477,7 +475,7 @@
py_file_editor.pool = self.pool
return py_file_editor
- def absent_file(self, path):
+ def absent_file(self, char *path):
check_error(self.editor.absent_file(path, self.dir_baton, self.pool))
cdef new_dir_editor(svn_delta_editor_t *editor, void *child_baton, apr_pool_t *pool):
@@ -494,11 +492,11 @@
cdef void *edit_baton
cdef apr_pool_t *pool
- def set_target_revision(self, target_revision):
+ def set_target_revision(self, int target_revision):
check_error(self.editor.set_target_revision(self.edit_baton,
target_revision, self.pool))
- def open_root(self, base_revision=-1):
+ def open_root(self, int base_revision=-1):
cdef void *root_baton
check_error(self.editor.open_root(self.edit_baton, base_revision,
self.pool, &root_baton))
@@ -522,7 +520,7 @@
return (svn_ra_version().major, svn_ra_version().minor,
svn_ra_version().minor, svn_ra_version().tag)
-cdef svn_error_t *py_editor_set_target_revision(void *edit_baton, svn_revnum_t target_revision, apr_pool_t *pool):
+cdef svn_error_t *py_editor_set_target_revision(void *edit_baton, svn_revnum_t target_revision, apr_pool_t *pool) except *:
self = <object>edit_baton
self.set_target_revision(target_revision)
return NULL
@@ -681,7 +679,7 @@
cdef apr_pool_t *pool
cdef char *url
cdef object progress_func
- def __init__(self, url, progress_cb=None, config={}):
+ def __init__(self, char *url, progress_cb=None, config={}):
"""Connect to a remote Subversion repository.
:param url: URL of the repository
@@ -713,7 +711,7 @@
apr_pool_destroy(temp_pool)
return uuid
- def reparent(self, url):
+ def reparent(self, char *url):
"""Switch to a different url."""
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
@@ -732,8 +730,8 @@
apr_pool_destroy(temp_pool)
return latest_revnum
- def get_log(self, callback, paths, start, end, limit=0,
- discover_changed_paths=True, strict_node_history=True,
+ def get_log(self, callback, paths, int start, int end, int limit=0,
+ int discover_changed_paths=True, int strict_node_history=True,
revprops=[PROP_REVISION_LOG,PROP_REVISION_AUTHOR,PROP_REVISION_DATE]):
cdef apr_pool_t *temp_pool
temp_pool = Pool(NULL)
@@ -753,7 +751,7 @@
apr_pool_destroy(temp_pool)
return root
- def do_update(self, revision_to_update_to, update_target, recurse,
+ def do_update(self, int revision_to_update_to, char *update_target, int recurse,
update_editor):
cdef svn_ra_reporter2_t *reporter
cdef void *report_baton
@@ -769,8 +767,8 @@
ret.pool = temp_pool
return ret
- def do_switch(self, revision_to_update_to, update_target, recurse,
- switch_url, update_editor):
+ def do_switch(self, int revision_to_update_to, char *update_target, int recurse,
+ char *switch_url, update_editor):
cdef svn_ra_reporter2_t *reporter
cdef void *report_baton
cdef apr_pool_t *temp_pool
@@ -786,14 +784,14 @@
ret.pool = temp_pool
return ret
- def replay(self, revision, low_water_mark, update_editor, send_deltas=True):
+ def replay(self, int revision, int low_water_mark, update_editor, int send_deltas=True):
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
check_error(svn_ra_replay(self.ra, revision, low_water_mark,
send_deltas, &py_editor, update_editor, temp_pool))
apr_pool_destroy(temp_pool)
- def rev_proplist(self, rev):
+ def rev_proplist(self, int rev):
cdef apr_pool_t *temp_pool
cdef apr_hash_t *props
temp_pool = Pool(self.pool)
@@ -803,7 +801,7 @@
return py_props
def get_commit_editor(self, revprops, commit_callback, lock_tokens,
- keep_locks):
+ int keep_locks):
cdef apr_pool_t *temp_pool
cdef svn_delta_editor_t *editor
cdef void *edit_baton
@@ -825,7 +823,7 @@
py_editor.pool = temp_pool
return py_editor
- def change_rev_prop(self, rev, name, value):
+ def change_rev_prop(self, int rev, char *name, char *value):
cdef apr_pool_t *temp_pool
cdef svn_string_t *val_string
temp_pool = Pool(self.pool)
@@ -834,7 +832,7 @@
val_string, temp_pool))
apr_pool_destroy(temp_pool)
- def get_dir(self, path, revision=None, dirent_fields=0):
+ def get_dir(self, char *path, int revision=-1, int dirent_fields=0):
cdef apr_pool_t *temp_pool
cdef apr_hash_t *dirents
cdef apr_hash_index_t *idx
@@ -874,7 +872,7 @@
apr_pool_destroy(temp_pool)
return (py_dirents, fetch_rev, py_props)
- def get_lock(self, path):
+ def get_lock(self, char *path):
cdef svn_lock_t *lock
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
@@ -882,7 +880,7 @@
apr_pool_destroy(temp_pool)
return wrap_lock(lock)
- def check_path(self, path, revision):
+ def check_path(self, char *path, int revision):
cdef svn_node_kind_t kind
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
@@ -891,7 +889,7 @@
apr_pool_destroy(temp_pool)
return kind
- def has_capability(self, capability):
+ def has_capability(self, char *capability):
cdef apr_pool_t *temp_pool
cdef int has
temp_pool = Pool(self.pool)
@@ -901,7 +899,7 @@
apr_pool_destroy(temp_pool)
return has
- def unlock(self, path_tokens, break_lock, lock_func):
+ def unlock(self, path_tokens, int break_lock, lock_func):
cdef apr_pool_t *temp_pool
cdef apr_hash_t *hash_path_tokens
temp_pool = Pool(self.pool)
@@ -912,7 +910,7 @@
py_lock_func, lock_func, temp_pool))
apr_pool_destroy(temp_pool)
- def lock(self, path_revs, comment, steal_lock, lock_func):
+ def lock(self, path_revs, char *comment, int steal_lock, lock_func):
cdef apr_pool_t *temp_pool
cdef apr_hash_t *hash_path_revs
cdef svn_revnum_t *rev
@@ -958,10 +956,10 @@
el[0] = provider.provider
svn_auth_open(&self.auth_baton, c_providers, self.pool)
- def set_parameter(self, name, value):
+ def set_parameter(self, char *name, char *value):
svn_auth_set_parameter(self.auth_baton, name, <char *>value)
- def get_parameter(self, name):
+ def get_parameter(self, char *name):
return <char *>svn_auth_get_parameter(self.auth_baton, name)
def __dealloc__(self):
@@ -973,7 +971,7 @@
cred[0].username = apr_pstrdup(pool, username)
return NULL
-def get_username_prompt_provider(prompt_func, retry_limit):
+def get_username_prompt_provider(prompt_func, int retry_limit):
cdef AuthProvider auth
auth = AuthProvider()
auth.pool = Pool(NULL)
@@ -987,7 +985,7 @@
cred[0].password = apr_pstrdup(pool, password)
return NULL
-def get_simple_prompt_provider(prompt_func, retry_limit):
+def get_simple_prompt_provider(prompt_func, int retry_limit):
cdef AuthProvider auth
auth = AuthProvider()
auth.pool = Pool(NULL)
@@ -1012,7 +1010,7 @@
cred[0].password = apr_pstrdup(pool, password)
return NULL
-def get_ssl_client_cert_pw_prompt_provider(prompt_func, retry_limit):
+def get_ssl_client_cert_pw_prompt_provider(prompt_func, int retry_limit):
cdef AuthProvider auth
auth = AuthProvider()
auth.pool = Pool(NULL)
=== modified file 'wc.pyx'
--- a/wc.pyx 2008-03-18 02:07:09 +0000
+++ b/wc.pyx 2008-03-18 17:19:59 +0000
@@ -286,7 +286,7 @@
cdef class WorkingCopy:
cdef svn_wc_adm_access_t *adm
cdef apr_pool_t *pool
- def __init__(self, WorkingCopy associated, path, write_lock=False, depth=0,
+ def __init__(self, WorkingCopy associated, char *path, int write_lock=False, int depth=0,
cancel_func=None):
cdef svn_wc_adm_access_t *parent_wc
self.pool = Pool(NULL)
@@ -304,7 +304,7 @@
def locked(self):
return svn_wc_adm_locked(self.adm)
- def prop_get(self, name, path):
+ def prop_get(self, char *name, char *path):
cdef svn_string_t *value
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
@@ -316,7 +316,7 @@
apr_pool_destroy(temp_pool)
return ret
- def prop_set(self, name, value, path, skip_checks=False):
+ def prop_set(self, char *name, char *value, char *path, int skip_checks=False):
cdef apr_pool_t *temp_pool
cdef svn_string_t *cvalue
temp_pool = Pool(self.pool)
@@ -325,7 +325,7 @@
skip_checks, temp_pool))
apr_pool_destroy(temp_pool)
- def entries_read(self, show_hidden=False):
+ def entries_read(self, int show_hidden=False):
cdef apr_hash_t *entries
cdef apr_pool_t *temp_pool
cdef apr_hash_index_t *idx
@@ -344,7 +344,7 @@
apr_pool_destroy(temp_pool)
return py_entries
- def entry(self, path, show_hidden=False):
+ def entry(self, char *path, int show_hidden=False):
cdef apr_pool_t *temp_pool
cdef svn_wc_entry_t *entry
temp_pool = Pool(self.pool)
@@ -353,7 +353,7 @@
return py_entry(entry)
- def get_prop_diffs(self, path):
+ def get_prop_diffs(self, char *path):
cdef apr_pool_t *temp_pool
cdef apr_array_header_t *propchanges
cdef apr_hash_t *original_props
@@ -378,7 +378,7 @@
apr_pool_destroy(temp_pool)
return (py_propchanges, py_orig_props)
- def add(self, path, copyfrom_url=None, copyfrom_rev=-1, cancel_func=None,
+ def add(self, char *path, char *copyfrom_url=NULL, int copyfrom_rev=-1, cancel_func=None,
notify_func=None):
cdef apr_pool_t *temp_pool
cdef char *c_copyfrom_url
@@ -395,7 +395,7 @@
temp_pool))
apr_pool_destroy(temp_pool)
- def copy(self, src, dst, cancel_func=None, notify_func=None):
+ def copy(self, char *src, char *dst, cancel_func=None, notify_func=None):
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
check_error(svn_wc_copy2(src, self.adm, dst,
@@ -404,7 +404,7 @@
temp_pool))
apr_pool_destroy(temp_pool)
- def delete(self, path, cancel_func=None, notify_func=None):
+ def delete(self, char *path, cancel_func=None, notify_func=None):
cdef apr_pool_t *temp_pool
temp_pool = Pool(self.pool)
check_error(svn_wc_delete2(path, self.adm,
@@ -413,8 +413,8 @@
temp_pool))
apr_pool_destroy(temp_pool)
- def crawl_revisions(self, path, reporter, restore_files=True,
- recurse=True, use_commit_times=True,
+ def crawl_revisions(self, char *path, reporter, int restore_files=True,
+ int recurse=True, int use_commit_times=True,
notify_func=None):
cdef apr_pool_t *temp_pool
cdef svn_wc_traversal_info_t *traversal_info
@@ -437,7 +437,7 @@
apr_pool_destroy(self.pool)
-def revision_status(wc_path, trail_url=None, committed=False, cancel_func=None):
+def revision_status(char *wc_path, char *trail_url=NULL, int committed=False, cancel_func=None):
"""Determine the revision status of a specified working copy.
:return: Tuple with minimum and maximum revnums found, whether the
@@ -458,13 +458,13 @@
apr_pool_destroy(temp_pool)
return ret
-def is_normal_prop(name):
+def is_normal_prop(char *name):
return svn_wc_is_normal_prop(name)
-def is_wc_prop(name):
+def is_wc_prop(char *name):
return svn_wc_is_wc_prop(name)
-def is_entry_prop(name):
+def is_entry_prop(char *name):
return svn_wc_is_entry_prop(name)
def get_adm_dir():
@@ -474,7 +474,7 @@
apr_pool_destroy(pool)
return ret
-def get_pristine_copy_path(path):
+def get_pristine_copy_path(char *path):
cdef apr_pool_t *pool
cdef char *pristine_path
pool = Pool(NULL)
More information about the bazaar-commits
mailing list