rice 1.4.3 → 1.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/COPYING +2 -2
  2. data/Doxyfile +1 -1
  3. data/Makefile.in +296 -166
  4. data/README +18 -13
  5. data/Rakefile +3 -2
  6. data/aclocal.m4 +375 -248
  7. data/config.guess +296 -261
  8. data/config.sub +268 -94
  9. data/configure +2789 -3054
  10. data/configure.ac +1 -1
  11. data/depcomp +403 -197
  12. data/extconf.rb +14 -3
  13. data/install-sh +139 -119
  14. data/missing +154 -306
  15. data/rice/Builtin_Object_defn.hpp +0 -1
  16. data/rice/Constructor.hpp +31 -30
  17. data/rice/Data_Object_defn.hpp +8 -2
  18. data/rice/Hash.hpp +26 -9
  19. data/rice/Hash.ipp +52 -60
  20. data/rice/Makefile.am +0 -1
  21. data/rice/Makefile.in +278 -152
  22. data/rice/Module_impl.ipp +1 -1
  23. data/rice/VM.cpp +1 -11
  24. data/rice/config.hpp +3 -0
  25. data/rice/config.hpp.in +3 -0
  26. data/rice/detail/Auto_Function_Wrapper.hpp +69 -0
  27. data/rice/detail/Auto_Function_Wrapper.ipp +815 -512
  28. data/rice/detail/Auto_Member_Function_Wrapper.hpp +69 -0
  29. data/rice/detail/Auto_Member_Function_Wrapper.ipp +543 -272
  30. data/rice/detail/object_call.hpp +1 -0
  31. data/rice/detail/ruby.hpp +0 -9
  32. data/rice/detail/ruby_version_code.hpp +1 -1
  33. data/rice/detail/st.hpp +0 -38
  34. data/rice/protect.hpp +1 -0
  35. data/rice/protect.ipp +1 -0
  36. data/rice/to_from_ruby.ipp +1 -1
  37. data/ruby.ac +2 -2
  38. data/ruby/Makefile.in +221 -134
  39. data/ruby/lib/Makefile.in +133 -44
  40. data/ruby/lib/mkmf-rice.rb.in +1 -4
  41. data/ruby/lib/version.rb +1 -1
  42. data/sample/Makefile.in +96 -31
  43. data/test/Makefile.am +0 -1
  44. data/test/Makefile.in +617 -219
  45. data/test/ext/Makefile.in +96 -31
  46. data/test/test_Class.cpp +2 -2
  47. data/test/test_Data_Object.cpp +11 -11
  48. data/test/test_Hash.cpp +7 -4
  49. data/test/test_Module.cpp +17 -1
  50. data/test/test_To_From_Ruby.cpp +44 -0
  51. data/test/test_rice.rb +2 -2
  52. metadata +29 -43
  53. data/rice/Allocation_Strategies.hpp +0 -37
  54. data/test/test_Allocation_Strategies.cpp +0 -77
data/test/ext/Makefile.in CHANGED
@@ -1,8 +1,8 @@
1
- # Makefile.in generated by automake 1.10 from Makefile.am.
1
+ # Makefile.in generated by automake 1.13.1 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
4
+ # Copyright (C) 1994-2012 Free Software Foundation, Inc.
5
+
6
6
  # This Makefile.in is free software; the Free Software Foundation
7
7
  # gives unlimited permission to copy and/or distribute it,
8
8
  # with or without modifications, as long as this notice is preserved.
@@ -14,9 +14,27 @@
14
14
 
15
15
  @SET_MAKE@
16
16
  VPATH = @srcdir@
17
+ am__make_dryrun = \
18
+ { \
19
+ am__dry=no; \
20
+ case $$MAKEFLAGS in \
21
+ *\\[\ \ ]*) \
22
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
23
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
24
+ *) \
25
+ for am__flg in $$MAKEFLAGS; do \
26
+ case $$am__flg in \
27
+ *=*|--*) ;; \
28
+ *n*) am__dry=yes; break;; \
29
+ esac; \
30
+ done;; \
31
+ esac; \
32
+ test $$am__dry = yes; \
33
+ }
17
34
  pkgdatadir = $(datadir)/@PACKAGE@
18
- pkglibdir = $(libdir)/@PACKAGE@
19
35
  pkgincludedir = $(includedir)/@PACKAGE@
36
+ pkglibdir = $(libdir)/@PACKAGE@
37
+ pkglibexecdir = $(libexecdir)/@PACKAGE@
20
38
  am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
21
39
  install_sh_DATA = $(install_sh) -c -m 644
22
40
  install_sh_PROGRAM = $(install_sh) -c
@@ -32,7 +50,7 @@ POST_UNINSTALL = :
32
50
  build_triplet = @build@
33
51
  host_triplet = @host@
34
52
  subdir = test/ext
35
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
53
+ DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
36
54
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
37
55
  am__aclocal_m4_deps = $(top_srcdir)/ruby.ac $(top_srcdir)/doxygen.ac \
38
56
  $(top_srcdir)/configure.ac
@@ -41,11 +59,31 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
41
59
  mkinstalldirs = $(install_sh) -d
42
60
  CONFIG_HEADER = $(top_builddir)/rice/config.hpp
43
61
  CONFIG_CLEAN_FILES =
62
+ CONFIG_CLEAN_VPATH_FILES =
63
+ AM_V_P = $(am__v_P_@AM_V@)
64
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
65
+ am__v_P_0 = false
66
+ am__v_P_1 = :
67
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
68
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
69
+ am__v_GEN_0 = @echo " GEN " $@;
70
+ am__v_GEN_1 =
71
+ AM_V_at = $(am__v_at_@AM_V@)
72
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
73
+ am__v_at_0 = @
74
+ am__v_at_1 =
44
75
  SOURCES =
45
76
  DIST_SOURCES =
77
+ am__can_run_installinfo = \
78
+ case $$AM_UPDATE_INFO_DIR in \
79
+ n|no|NO) false;; \
80
+ *) (install-info --version) >/dev/null 2>&1;; \
81
+ esac
82
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
46
83
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
47
84
  ACLOCAL = @ACLOCAL@
48
85
  AMTAR = @AMTAR@
86
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
49
87
  AUTOCONF = @AUTOCONF@
50
88
  AUTOHEADER = @AUTOHEADER@
51
89
  AUTOMAKE = @AUTOMAKE@
@@ -102,6 +140,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
102
140
  PACKAGE_NAME = @PACKAGE_NAME@
103
141
  PACKAGE_STRING = @PACKAGE_STRING@
104
142
  PACKAGE_TARNAME = @PACKAGE_TARNAME@
143
+ PACKAGE_URL = @PACKAGE_URL@
105
144
  PACKAGE_VERSION = @PACKAGE_VERSION@
106
145
  PATH_SEPARATOR = @PATH_SEPARATOR@
107
146
  RANLIB = @RANLIB@
@@ -171,6 +210,7 @@ sharedstatedir = @sharedstatedir@
171
210
  srcdir = @srcdir@
172
211
  sysconfdir = @sysconfdir@
173
212
  target_alias = @target_alias@
213
+ top_build_prefix = @top_build_prefix@
174
214
  top_builddir = @top_builddir@
175
215
  top_srcdir = @top_srcdir@
176
216
  RUBY_EXTCONF_OPTIONS = -I@RICE_ROOT@/ruby/lib
@@ -188,14 +228,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
188
228
  @for dep in $?; do \
189
229
  case '$(am__configure_deps)' in \
190
230
  *$$dep*) \
191
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
192
- && exit 0; \
231
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
232
+ && { if test -f $@; then exit 0; else break; fi; }; \
193
233
  exit 1;; \
194
234
  esac; \
195
235
  done; \
196
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/ext/Makefile'; \
197
- cd $(top_srcdir) && \
198
- $(AUTOMAKE) --gnu test/ext/Makefile
236
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu test/ext/Makefile'; \
237
+ $(am__cd) $(top_srcdir) && \
238
+ $(AUTOMAKE) --gnu test/ext/Makefile
199
239
  .PRECIOUS: Makefile
200
240
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
201
241
  @case '$?' in \
@@ -213,11 +253,12 @@ $(top_srcdir)/configure: $(am__configure_deps)
213
253
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
214
254
  $(ACLOCAL_M4): $(am__aclocal_m4_deps)
215
255
  cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
216
- tags: TAGS
217
- TAGS:
256
+ $(am__aclocal_m4_deps):
257
+ tags TAGS:
218
258
 
219
- ctags: CTAGS
220
- CTAGS:
259
+ ctags CTAGS:
260
+
261
+ cscope cscopelist:
221
262
 
222
263
 
223
264
  distdir: $(DISTFILES)
@@ -236,13 +277,17 @@ distdir: $(DISTFILES)
236
277
  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
237
278
  if test -d $$d/$$file; then \
238
279
  dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
280
+ if test -d "$(distdir)/$$file"; then \
281
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
282
+ fi; \
239
283
  if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
240
- cp -pR $(srcdir)/$$file "$(distdir)"$$dir || exit 1; \
284
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
285
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
241
286
  fi; \
242
- cp -pR $$d/$$file "$(distdir)"$$dir || exit 1; \
287
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
243
288
  else \
244
- test -f "$(distdir)"/$$file \
245
- || cp -p $$d/$$file "$(distdir)"/$$file \
289
+ test -f "$(distdir)/$$file" \
290
+ || cp -p $$d/$$file "$(distdir)/$$file" \
246
291
  || exit 1; \
247
292
  fi; \
248
293
  done
@@ -260,16 +305,22 @@ install-am: all-am
260
305
 
261
306
  installcheck: installcheck-am
262
307
  install-strip:
263
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
264
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
265
- `test -z '$(STRIP)' || \
266
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
308
+ if test -z '$(STRIP)'; then \
309
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
310
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
311
+ install; \
312
+ else \
313
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
314
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
315
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
316
+ fi
267
317
  mostlyclean-generic:
268
318
 
269
319
  clean-generic:
270
320
 
271
321
  distclean-generic:
272
322
  -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
323
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
273
324
 
274
325
  maintainer-clean-generic:
275
326
  @echo "This command is intended for maintainers to use"
@@ -284,6 +335,8 @@ dvi-am:
284
335
 
285
336
  html: html-am
286
337
 
338
+ html-am:
339
+
287
340
  info: info-am
288
341
 
289
342
  info-am:
@@ -292,18 +345,28 @@ install-data-am:
292
345
 
293
346
  install-dvi: install-dvi-am
294
347
 
348
+ install-dvi-am:
349
+
295
350
  install-exec-am:
296
351
 
297
352
  install-html: install-html-am
298
353
 
354
+ install-html-am:
355
+
299
356
  install-info: install-info-am
300
357
 
358
+ install-info-am:
359
+
301
360
  install-man:
302
361
 
303
362
  install-pdf: install-pdf-am
304
363
 
364
+ install-pdf-am:
365
+
305
366
  install-ps: install-ps-am
306
367
 
368
+ install-ps-am:
369
+
307
370
  installcheck-am:
308
371
 
309
372
  maintainer-clean: maintainer-clean-am
@@ -326,15 +389,16 @@ uninstall-am:
326
389
 
327
390
  .MAKE: install-am install-strip
328
391
 
329
- .PHONY: all all-am check check-am clean clean-generic distclean \
330
- distclean-generic distdir dvi dvi-am html html-am info info-am \
331
- install install-am install-data install-data-am install-dvi \
332
- install-dvi-am install-exec install-exec-am install-html \
333
- install-html-am install-info install-info-am install-man \
334
- install-pdf install-pdf-am install-ps install-ps-am \
335
- install-strip installcheck installcheck-am installdirs \
336
- maintainer-clean maintainer-clean-generic mostlyclean \
337
- mostlyclean-generic pdf pdf-am ps ps-am uninstall uninstall-am
392
+ .PHONY: all all-am check check-am clean clean-generic cscopelist-am \
393
+ ctags-am distclean distclean-generic distdir dvi dvi-am html \
394
+ html-am info info-am install install-am install-data \
395
+ install-data-am install-dvi install-dvi-am install-exec \
396
+ install-exec-am install-html install-html-am install-info \
397
+ install-info-am install-man install-pdf install-pdf-am \
398
+ install-ps install-ps-am install-strip installcheck \
399
+ installcheck-am installdirs maintainer-clean \
400
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
401
+ pdf-am ps ps-am tags-am uninstall uninstall-am
338
402
 
339
403
 
340
404
  all:
@@ -370,6 +434,7 @@ t1_distclean:
370
434
 
371
435
  t2_distclean:
372
436
  make -C t2 distclean
437
+
373
438
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
374
439
  # Otherwise a system limit (for SysV at least) may be exceeded.
375
440
  .NOEXPORT:
data/test/test_Class.cpp CHANGED
@@ -258,7 +258,7 @@ TESTCASE(define_method_int_foo)
258
258
  define_method_int_result = 0;
259
259
  Foo * foo = new Foo;
260
260
  foo->x = 1024;
261
- VALUE f = Data_Wrap_Struct(rb_cObject, 0, Default_Allocation_Strategy<Foo>::free, foo);
261
+ VALUE f = Data_Wrap_Struct(rb_cObject, 0, Default_Free_Function<Foo>::free, foo);
262
262
  o.call("foo", 42, Object(f));
263
263
  ASSERT_EQUAL(42, define_method_int_foo_result_i);
264
264
  ASSERT_EQUAL(foo, define_method_int_foo_result_x);
@@ -332,7 +332,7 @@ TESTCASE(define_iterator)
332
332
  c.define_iterator(&Container::begin, &Container::end);
333
333
  Container * container = new Container(array, 3);
334
334
  Object wrapped_container = Data_Wrap_Struct(
335
- c, 0, Default_Allocation_Strategy<Container>::free, container);
335
+ c, 0, Default_Free_Function<Container>::free, container);
336
336
  Array a = wrapped_container.instance_eval("a = []; each() { |x| a << x }; a");
337
337
  ASSERT_EQUAL(3u, a.size());
338
338
  ASSERT_EQUAL(to_ruby(1), Object(a[0]));
@@ -51,7 +51,7 @@ TESTCASE(construct_from_pointer_with_defaults)
51
51
  expected_mark_func,
52
52
  RDATA(wrapped_foo.value())->dmark);
53
53
  ASSERT_EQUAL(
54
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
54
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
55
55
  RUBY_DATA_FUNC(RDATA(wrapped_foo.value())->dfree));
56
56
  ASSERT_EQUAL(foo, DATA_PTR(wrapped_foo.value()));
57
57
  }
@@ -71,7 +71,7 @@ TESTCASE(construct_from_pointer_and_klass)
71
71
  expected_mark_func,
72
72
  RDATA(wrapped_foo.value())->dmark);
73
73
  ASSERT_EQUAL(
74
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
74
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
75
75
  RUBY_DATA_FUNC(RDATA(wrapped_foo.value())->dfree));
76
76
  ASSERT_EQUAL(foo, DATA_PTR(wrapped_foo.value()));
77
77
  }
@@ -91,7 +91,7 @@ TESTCASE(construct_from_pointer_and_alternate_klass)
91
91
  expected_mark_func,
92
92
  RDATA(wrapped_foo.value())->dmark);
93
93
  ASSERT_EQUAL(
94
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
94
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
95
95
  RUBY_DATA_FUNC(RDATA(wrapped_foo.value())->dfree));
96
96
  ASSERT_EQUAL(foo, DATA_PTR(wrapped_foo.value()));
97
97
  }
@@ -112,7 +112,7 @@ TESTCASE(construct_from_pointer_and_klass_and_mark_function)
112
112
  ASSERT_EQUAL(Data_Type<Foo>::klass(), wrapped_foo.class_of());
113
113
  ASSERT_EQUAL((void *)dummy_mark, RDATA(wrapped_foo.value())->dmark);
114
114
  ASSERT_EQUAL(
115
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
115
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
116
116
  RUBY_DATA_FUNC(RDATA(wrapped_foo.value())->dfree));
117
117
  ASSERT_EQUAL(foo, DATA_PTR(wrapped_foo.value()));
118
118
  }
@@ -142,14 +142,14 @@ TESTCASE(construct_from_pointer_and_klass_and_mark_and_free)
142
142
  TESTCASE(construct_from_ruby_object)
143
143
  {
144
144
  Foo * foo = new Foo;
145
- VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Allocation_Strategy<Foo>::free, foo);
145
+ VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Free_Function<Foo>::free, foo);
146
146
  Data_Object<Foo> data_object_foo(wrapped_foo);
147
147
  ASSERT_EQUAL(foo, data_object_foo.get());
148
148
  ASSERT_EQUAL(Data_Type<Foo>::klass(), data_object_foo.class_of());
149
149
  ASSERT_EQUAL(RDATA(wrapped_foo), RDATA(data_object_foo.value()));
150
150
  ASSERT_EQUAL(RUBY_DATA_FUNC(0), RDATA(data_object_foo.value())->dmark);
151
151
  ASSERT_EQUAL(
152
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
152
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
153
153
  RUBY_DATA_FUNC(RDATA(data_object_foo.value())->dfree));
154
154
  ASSERT_EQUAL(foo, DATA_PTR(data_object_foo.value()));
155
155
  }
@@ -158,14 +158,14 @@ TESTCASE(construct_from_ruby_object_and_class)
158
158
  {
159
159
  Data_Type<Foo> rb_cFoo;
160
160
  Foo * foo = new Foo;
161
- VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Allocation_Strategy<Foo>::free, foo);
161
+ VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Free_Function<Foo>::free, foo);
162
162
  Data_Object<Foo> data_object_foo(wrapped_foo, rb_cFoo);
163
163
  ASSERT_EQUAL(foo, data_object_foo.get());
164
164
  ASSERT_EQUAL(Data_Type<Foo>::klass(), data_object_foo.class_of());
165
165
  ASSERT_EQUAL(RDATA(wrapped_foo), RDATA(data_object_foo.value()));
166
166
  ASSERT_EQUAL(RUBY_DATA_FUNC(0), RDATA(data_object_foo.value())->dmark);
167
167
  ASSERT_EQUAL(
168
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
168
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
169
169
  RUBY_DATA_FUNC(RDATA(data_object_foo.value())->dfree));
170
170
  ASSERT_EQUAL(foo, DATA_PTR(data_object_foo.value()));
171
171
  }
@@ -174,7 +174,7 @@ TESTCASE(construct_from_ruby_object_and_wrong_class)
174
174
  {
175
175
  Foo * foo = new Foo;
176
176
  Data_Type<Foo> rb_cFoo;
177
- VALUE wrapped_foo = Data_Wrap_Struct(rb_cObject, 0, Default_Allocation_Strategy<Foo>::free, foo);
177
+ VALUE wrapped_foo = Data_Wrap_Struct(rb_cObject, 0, Default_Free_Function<Foo>::free, foo);
178
178
  ASSERT_EXCEPTION_CHECK(
179
179
  Exception,
180
180
  Data_Object<Foo> data_object_foo(wrapped_foo, rb_cFoo),
@@ -189,7 +189,7 @@ TESTCASE(copy_construct)
189
189
  {
190
190
  Data_Type<Foo> rb_cFoo;
191
191
  Foo * foo = new Foo;
192
- VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Allocation_Strategy<Foo>::free, foo);
192
+ VALUE wrapped_foo = Data_Wrap_Struct(Data_Type<Foo>::klass(), 0, Default_Free_Function<Foo>::free, foo);
193
193
  Data_Object<Foo> orig_data_object_foo(wrapped_foo, rb_cFoo);
194
194
  Data_Object<Foo> data_object_foo(orig_data_object_foo);
195
195
  ASSERT_EQUAL(foo, data_object_foo.get());
@@ -197,7 +197,7 @@ TESTCASE(copy_construct)
197
197
  ASSERT_EQUAL(RDATA(wrapped_foo), RDATA(data_object_foo.value()));
198
198
  ASSERT_EQUAL(RUBY_DATA_FUNC(0), RDATA(data_object_foo.value())->dmark);
199
199
  ASSERT_EQUAL(
200
- RUBY_DATA_FUNC(Default_Allocation_Strategy<Foo>::free),
200
+ RUBY_DATA_FUNC(Default_Free_Function<Foo>::free),
201
201
  RUBY_DATA_FUNC(RDATA(data_object_foo.value())->dfree));
202
202
  ASSERT_EQUAL(foo, DATA_PTR(data_object_foo.value()));
203
203
  }
data/test/test_Hash.cpp CHANGED
@@ -17,7 +17,7 @@ TESTCASE(default_construct)
17
17
  {
18
18
  Hash h;
19
19
  ASSERT_EQUAL(T_HASH, rb_type(h));
20
- ASSERT_EQUAL(0, RHASH_TBL(h.value())->num_entries);
20
+ ASSERT_EQUAL(0, RHASH_SIZE(h.value()));
21
21
  }
22
22
 
23
23
  TESTCASE(construct_from_object)
@@ -25,7 +25,7 @@ TESTCASE(construct_from_object)
25
25
  Object o(rb_hash_new());
26
26
  Hash h(o);
27
27
  ASSERT_EQUAL(T_HASH, rb_type(h));
28
- ASSERT_EQUAL(0, RHASH_TBL(h.value())->num_entries);
28
+ ASSERT_EQUAL(0, RHASH_SIZE(h.value()));
29
29
  }
30
30
 
31
31
  TESTCASE(construct_from_value)
@@ -33,7 +33,7 @@ TESTCASE(construct_from_value)
33
33
  VALUE v(rb_hash_new());
34
34
  Hash h(v);
35
35
  ASSERT_EQUAL(T_HASH, rb_type(h));
36
- ASSERT_EQUAL(0, RHASH_TBL(h.value())->num_entries);
36
+ ASSERT_EQUAL(0, RHASH_SIZE(h.value()));
37
37
  }
38
38
 
39
39
  TESTCASE(copy_construct)
@@ -95,6 +95,7 @@ TESTCASE(construct_vector_from_hash_iterators)
95
95
  h[6] = 9;
96
96
  h[42] = 42;
97
97
  h[6] = 1;
98
+
98
99
  std::vector<Hash::Entry> v(h.begin(), h.end());
99
100
  std::sort(v.begin(), v.end());
100
101
  ASSERT_EQUAL(3u, v.size());
@@ -119,13 +120,16 @@ TESTCASE(iterate)
119
120
  h[6] = 9;
120
121
  h[42] = 42;
121
122
  h[6] = 1;
123
+
122
124
  std::vector<Hash::Entry> v;
123
125
  Hash::iterator it = h.begin();
124
126
  Hash::iterator end = h.end();
127
+
125
128
  for(; it != end; ++it)
126
129
  {
127
130
  v.push_back(*it);
128
131
  }
132
+
129
133
  std::sort(v.begin(), v.end());
130
134
  ASSERT_EQUAL(3u, v.size());
131
135
  ASSERT_EQUAL(v[0].key, to_ruby(1));
@@ -192,4 +196,3 @@ TESTCASE(iterate_and_change)
192
196
  ASSERT_EQUAL(to_ruby(m[6]), h[6]);
193
197
  ASSERT_EQUAL(to_ruby(m[42]), h[42]);
194
198
  }
195
-
data/test/test_Module.cpp CHANGED
@@ -94,6 +94,22 @@ TESTCASE(define_module_function_simple)
94
94
  ASSERT(define_method_simple_ok);
95
95
  }
96
96
 
97
+ TESTCASE(define_module_does_not_leak_method_to_Object)
98
+ {
99
+ Module m = define_module("TestModule");
100
+ m.define_module_function("test_module_function", &define_method_simple_helper);
101
+
102
+ Module runner(anonymous_module());
103
+ ASSERT_EXCEPTION_CHECK(
104
+ Exception,
105
+ runner.instance_eval("Object.test_module_function"),
106
+ ASSERT_EQUAL(
107
+ Object(rb_eNoMethodError),
108
+ Object(CLASS_OF(ex.value()))
109
+ )
110
+ );
111
+ }
112
+
97
113
  namespace
98
114
  {
99
115
 
@@ -184,7 +200,7 @@ TESTCASE(define_singleton_method_int_foo)
184
200
  define_method_int_result = 0;
185
201
  Foo * foo = new Foo;
186
202
  foo->x = 1024;
187
- VALUE f = Data_Wrap_Struct(rb_cObject, 0, Default_Allocation_Strategy<Foo>::free, foo);
203
+ VALUE f = Data_Wrap_Struct(rb_cObject, 0, Default_Free_Function<Foo>::free, foo);
188
204
  m.call("int_and_foo", 42, Object(f));
189
205
  ASSERT_EQUAL(42, define_method_int_foo_result_i);
190
206
  ASSERT_EQUAL(foo, define_method_int_foo_result_x);