Author: rschupp
Date: Wed Jun 3 09:39:23 2015
New Revision: 1683261
URL: http://svn.apache.org/r1683261
Log:
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c:
Annotate functions that (transitively) call back into Perl.
This information is helpful when deciding whether a call to
a helper function in a Swig rule must be bracketed with
PUTBACK/SPAGAIN.
Modified:
subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
Modified:
subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1683261&r1=1683260&r2=1683261&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
(original)
+++
subversion/trunk/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
Wed Jun 3 09:39:23 2015
@@ -520,6 +520,7 @@ svn_opt_revision_t *svn_swig_pl_set_revi
put returned value in result if result is not NULL
*/
+/* NOTE: calls back into Perl (directly) */
svn_error_t *svn_swig_pl_callback_thunk(perl_func_invoker_t caller_func,
void *func,
SV **result,
@@ -670,6 +671,7 @@ static item_baton * make_baton(apr_pool_
return newb;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * close_baton(void *baton, const char *method, apr_pool_t
*pool)
{
item_baton *ib = baton;
@@ -690,6 +692,7 @@ static svn_error_t * close_baton(void *b
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_set_target_revision(void *edit_baton,
svn_revnum_t target_revision,
apr_pool_t *pool)
@@ -703,6 +706,7 @@ static svn_error_t * thunk_set_target_re
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_root(void *edit_baton,
svn_revnum_t base_revision,
apr_pool_t *dir_pool,
@@ -720,6 +724,7 @@ static svn_error_t * thunk_open_root(voi
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_delete_entry(const char *path,
svn_revnum_t revision,
void *parent_baton,
@@ -734,6 +739,7 @@ static svn_error_t * thunk_delete_entry(
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_add_directory(const char *path,
void *parent_baton,
const char *copyfrom_path,
@@ -753,6 +759,7 @@ static svn_error_t * thunk_add_directory
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_directory(const char *path,
void *parent_baton,
svn_revnum_t base_revision,
@@ -772,6 +779,7 @@ static svn_error_t * thunk_open_director
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_change_dir_prop(void *dir_baton,
const char *name,
const svn_string_t *value,
@@ -787,12 +795,14 @@ static svn_error_t * thunk_change_dir_pr
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_close_directory(void *dir_baton,
apr_pool_t *pool)
{
return close_baton(dir_baton, "close_directory", pool);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_absent_directory(const char *path,
void *parent_baton,
apr_pool_t *pool)
@@ -807,6 +817,7 @@ static svn_error_t * thunk_absent_direct
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_add_file(const char *path,
void *parent_baton,
const char *copyfrom_path,
@@ -827,6 +838,7 @@ static svn_error_t * thunk_add_file(cons
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_file(const char *path,
void *parent_baton,
svn_revnum_t base_revision,
@@ -845,6 +857,7 @@ static svn_error_t * thunk_open_file(con
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_window_handler(svn_txdelta_window_t *window,
void *baton)
{
@@ -865,6 +878,7 @@ static svn_error_t * thunk_window_handle
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *
thunk_apply_textdelta(void *file_baton,
const char *base_checksum,
@@ -909,6 +923,7 @@ thunk_apply_textdelta(void *file_baton,
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_change_file_prop(void *file_baton,
const char *name,
const svn_string_t *value,
@@ -924,6 +939,7 @@ static svn_error_t * thunk_change_file_p
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_close_file(void *file_baton,
const char *text_checksum,
apr_pool_t *pool)
@@ -940,6 +956,7 @@ static svn_error_t * thunk_close_file(vo
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_absent_file(const char *path,
void *parent_baton,
apr_pool_t *pool)
@@ -954,12 +971,14 @@ static svn_error_t * thunk_absent_file(c
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_close_edit(void *edit_baton,
apr_pool_t *pool)
{
return close_baton(edit_baton, "close_edit", pool);
}
+/* NOTE: calls back into Perl (by calling close_baton) */
static svn_error_t * thunk_abort_edit(void *edit_baton,
apr_pool_t *pool)
{
@@ -1008,6 +1027,7 @@ void svn_swig_pl_make_editor(svn_delta_e
svn_swig_pl_hold_ref_in_pool(pool, perl_editor);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_log_receiver(void *baton,
apr_hash_t *changed_paths,
svn_revnum_t rev,
@@ -1032,6 +1052,7 @@ svn_error_t *svn_swig_pl_thunk_log_recei
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_log_entry_receiver(void *baton,
svn_log_entry_t *log_entry,
apr_pool_t *pool)
@@ -1050,6 +1071,7 @@ svn_error_t *svn_swig_pl_thunk_log_entry
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t * svn_swig_pl_thunk_client_diff_summarize_func(
const svn_client_diff_summarize_t *diff,
void *baton,
@@ -1069,6 +1091,7 @@ svn_error_t * svn_swig_pl_thunk_client_d
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_history_func(void *baton,
const char *path,
svn_revnum_t revision,
@@ -1086,6 +1109,7 @@ svn_error_t *svn_swig_pl_thunk_history_f
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_authz_func(svn_boolean_t *allowed,
svn_fs_root_t *root,
const char *path,
@@ -1108,6 +1132,7 @@ svn_error_t *svn_swig_pl_thunk_authz_fun
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_commit_callback(svn_revnum_t new_revision,
const char *date,
const char *author,
@@ -1122,6 +1147,7 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_commit_callback2(const svn_commit_info_t
*commit_info,
void *baton,
apr_pool_t *pool)
@@ -1140,6 +1166,7 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
/* Wrap RA */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t * thunk_open_tmp_file(apr_file_t **fp,
void *callback_baton,
apr_pool_t *pool)
@@ -1158,6 +1185,7 @@ static svn_error_t * thunk_open_tmp_file
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *thunk_get_wc_prop(void *baton,
const char *relpath,
const char *name,
@@ -1215,6 +1243,7 @@ svn_error_t *svn_swig_pl_make_callbacks(
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_gnome_keyring_unlock_prompt(char
**keyring_password,
const char
*keyring_name,
void *baton,
@@ -1243,6 +1272,7 @@ svn_error_t *svn_swig_pl_thunk_gnome_key
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_simple_prompt(svn_auth_cred_simple_t **cred,
void *baton,
const char *realm,
@@ -1264,6 +1294,7 @@ svn_error_t *svn_swig_pl_thunk_simple_pr
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_username_prompt(svn_auth_cred_username_t **cred,
void *baton,
const char *realm,
@@ -1284,6 +1315,7 @@ svn_error_t *svn_swig_pl_thunk_username_
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_server_trust_prompt(
svn_auth_cred_ssl_server_trust_t **cred,
void *baton,
@@ -1318,6 +1350,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_serve
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_client_cert_prompt(
svn_auth_cred_ssl_client_cert_t **cred,
void *baton,
@@ -1339,6 +1372,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_thunk_ssl_client_cert_pw_prompt(
svn_auth_cred_ssl_client_cert_pw_t **cred,
void *baton,
@@ -1361,6 +1395,7 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
}
/* Thunked version of svn_wc_notify_func_t callback type */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_notify_func(void * baton,
const char *path,
svn_wc_notify_action_t action,
@@ -1382,6 +1417,7 @@ void svn_swig_pl_notify_func(void * bato
}
/* Thunked version of svn_client_get_commit_log3_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_get_commit_log_func(const char **log_msg,
const char **tmp_file,
const apr_array_header_t *
@@ -1444,6 +1480,7 @@ svn_error_t *svn_swig_pl_get_commit_log_
}
/* Thunked version of svn_client_info_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_info_receiver(void *baton,
const char *path,
const svn_info_t *info,
@@ -1475,6 +1512,7 @@ svn_error_t *svn_swig_pl_info_receiver(v
/* Thunked version of svn_wc_cancel_func_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_cancel_func(void *cancel_baton) {
SV *result;
svn_error_t *ret_val;
@@ -1504,6 +1542,7 @@ svn_error_t *svn_swig_pl_cancel_func(voi
}
/* Thunked version of svn_wc_status_func_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_status_func(void *baton,
const char *path,
svn_wc_status_t *status)
@@ -1520,6 +1559,7 @@ void svn_swig_pl_status_func(void *baton
}
/* Thunked version of svn_wc_status_func2_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
void svn_swig_pl_status_func2(void *baton,
const char *path,
svn_wc_status2_t *status)
@@ -1536,6 +1576,7 @@ void svn_swig_pl_status_func2(void *bato
}
/* Thunked version of svn_wc_status_func3_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_status_func3(void *baton,
const char *path,
svn_wc_status2_t *status,
@@ -1568,6 +1609,7 @@ svn_error_t *svn_swig_pl_status_func3(vo
/* Thunked version of svn_client_blame_receiver_t callback type. */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_blame_func(void *baton,
apr_int64_t line_no,
svn_revnum_t revision,
@@ -1596,6 +1638,7 @@ svn_error_t *svn_swig_pl_blame_func(void
}
/* Thunked config enumerator */
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_boolean_t svn_swig_pl_thunk_config_enumerator(const char *name, const char
*value, void *baton)
{
SV *result;
@@ -1639,6 +1682,7 @@ void svn_swig_pl_set_current_pool(apr_po
set_current_pool_cb(pool);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
apr_pool_t *svn_swig_pl_make_pool(SV *obj)
{
apr_pool_t *pool;
@@ -1667,6 +1711,7 @@ typedef struct io_baton_t {
IO *io;
} io_baton_t;
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_read(void *baton,
char *buffer,
apr_size_t *len)
@@ -1690,6 +1735,7 @@ static svn_error_t *io_handle_read(void
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_write(void *baton,
const char *data,
apr_size_t *len)
@@ -1710,6 +1756,7 @@ static svn_error_t *io_handle_write(void
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
static svn_error_t *io_handle_close(void *baton)
{
io_baton_t *io = baton;
@@ -1733,6 +1780,7 @@ static apr_status_t io_handle_cleanup(vo
return APR_SUCCESS;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_make_stream(svn_stream_t **stream, SV *obj)
{
IO *io;
@@ -1778,6 +1826,7 @@ svn_error_t *svn_swig_pl_make_stream(svn
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
svn_error_t *svn_swig_pl_ra_lock_callback(
void *baton,
const char *path,
@@ -1797,6 +1846,7 @@ svn_error_t *svn_swig_pl_ra_lock_callbac
return SVN_NO_ERROR;
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
SV *svn_swig_pl_from_stream(svn_stream_t *stream)
{
SV *ret;
@@ -1848,6 +1898,7 @@ void svn_swig_pl_hold_ref_in_pool(apr_po
apr_pool_cleanup_register(pool, sv, cleanup_refcnt, apr_pool_cleanup_null);
}
+/* NOTE: calls back into Perl (by calling svn_swig_pl_callback_thunk) */
SV *svn_swig_pl_from_md5(unsigned char *digest)
{
SV *ret;