On 2005-07-03 12:57+0900, Kouhei Sutou wrote:
Hi Kou,
> It seems that Ruby's Hash converted from apr_hash_t is
> broken.
>
> Could you show me the definition of
> _wrap_svn_fs_node_proplist in
> subversion/bindings/swig/ruby/svn_fs.c?
Sure!
Here it is, please let me know if you need anything else.
BR, Jani
static VALUE
_wrap_svn_fs_node_proplist(int argc, VALUE *argv, VALUE self) {
apr_hash_t **arg1 = (apr_hash_t **) 0 ;
svn_fs_root_t *arg2 = (svn_fs_root_t *) 0 ;
char *arg3 = (char *) 0 ;
apr_pool_t *arg4 = (apr_pool_t *) 0 ;
svn_error_t *result;
VALUE _global_rb_pool ;
apr_pool_t *_global_pool ;
apr_hash_t *temp1 ;
VALUE vresult = Qnil;
{
svn_swig_rb_get_pool(argc, argv, self, &_global_rb_pool, &arg4);
_global_pool = arg4;
}
arg1 = &temp1;
if ((argc < 2) || (argc > 3))
rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc);
SWIG_ConvertPtr(argv[0], (void **) &arg2, SWIGTYPE_p_svn_fs_root_t, 1);
arg3 = StringValuePtr(argv[1]);
if (argc > 2) {
}
{
result = (svn_error_t *)svn_fs_node_proplist(arg1,arg2,(char const *)arg3,arg4);
}
{
if (result) {
svn_error_t *error = result;
VALUE error_code = INT2NUM(error->apr_err);
VALUE message;
message = rb_str_new2(error->message ? error->message : "");
while (error->child) {
error = error->child;
if (error->message) {
rb_str_concat(message, rb_str_new2("\n"));
rb_str_concat(message, rb_str_new2(error->message));
}
}
svn_error_clear(error);
rb_exc_raise(svn_swig_rb_svn_error_new(error_code, message));
}
vresult = Qnil;
}
{
vresult = svn_swig_rb_apr_hash_to_hash_svn_string(*arg1);
}
{
svn_swig_rb_set_pool(vresult, _global_rb_pool);
}
return vresult;
}
--
Jani Averbach
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun Jul 3 07:13:07 2005