Joe Swatosh <joe.swat...@gmail.com> writes: > From that perspective, it seems to me that the best approach is to use > the Set in the test, but not in the bindings themselves. Also the > current APIs don't provide order guarantees (obviously), but if they > started to guarantee order in the future, the Set may be a bad choice > in the interface.
That sounds reasonable. The bindings test currently cause a Ruby SEGV if APR is built with pool debugging enabled: #1 <signal handler called> #2 0x00007ffff5bffa91 in apr_hash_next (hi=0x737190) at tables/apr_hash.c:134 #3 0x00007ffff62be912 in c2r_hash_with_key_convert (hash=0x737180, key_conv=0x7ffff62bcbc9 <c2r_string>, key_ctx=0x0, value_conv=0x7ffff62bc8f6 <svn_swig_rb_from_swig_type>, value_ctx=0x7ffff653a530) at ../src/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c:1432 #4 0x00007ffff62be9ed in c2r_hash (hash=0x737180, value_conv=0x7ffff62bc8f6 <svn_swig_rb_from_swig_type>, ctx=0x7ffff653a530) at ../src/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c:1452 #5 0x00007ffff62bea65 in svn_swig_rb_apr_hash_to_hash_swig_type ( hash=0x737180, type_name=0x7ffff653a530 "svn_log_changed_path_t *") at ../src/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c:1470 #6 0x00007ffff64e2f40 in _wrap_svn_log_entry_t_changed_paths_get (argc=0, argv=0x0, self=140737217253200) at subversion/bindings/swig/ruby/core.c:5695 #7 0x00007ffff7b1c0ae in ?? () from /usr/lib/libruby1.8.so.1.8 (gdb) down #3 0x00007ffff62be912 in c2r_hash_with_key_convert (hash=0x737180, key_conv=0x7ffff62bcbc9 <c2r_string>, key_ctx=0x0, value_conv=0x7ffff62bc8f6 <svn_swig_rb_from_swig_type>, value_ctx=0x7ffff653a530) at ../src/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c:1432 1432 for (hi = apr_hash_first(NULL, hash); hi; hi = apr_hash_next(hi)) { (gdb) p hash[0] $3 = {pool = 0x0, array = 0x51, iterator = {ht = 0x737180, this = 0x0, next = 0x0, index = 1}, count = 0, max = 0, seed = 1094795585, hash_func = 0x4141414141414141, free = 0x4141414141414141} -- uberSVN: Apache Subversion Made Easy http://www.uberSVN.com