diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-27 23:51:09 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-03-27 23:51:09 +0000 |
commit | 55152ae26d200be3bd59170e9750949058fa82a2 (patch) | |
tree | 5b75041b76de4b4eeeaa835f8df3832252ce5a7e | |
parent | 4f06c9f64de01a6f082af82655f38938002c6891 (diff) | |
download | ruby-55152ae26d200be3bd59170e9750949058fa82a2.tar.gz |
internal.h: rb_imemo_new_debug
* internal.h (rb_imemo_new_debug): pretend rb_imemo_new.
* gc.c (rb_imemo_new_debug): share with rb_imemo_new.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | gc.c | 5 | ||||
-rw-r--r-- | internal.h | 13 |
2 files changed, 6 insertions, 12 deletions
@@ -1787,6 +1787,8 @@ rb_node_newnode(enum node_type type, VALUE a0, VALUE a1, VALUE a2) return n; } +#undef rb_imemo_new + VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0) { @@ -1798,8 +1800,7 @@ rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0) VALUE rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line) { - VALUE flags = T_IMEMO | (type << FL_USHIFT) | FL_WB_PROTECTED; - VALUE memo = newobj_of(v0, flags, v1, v2, v3); + VALUE memo = rb_imemo_new(type, v1, v2, v3, v0); fprintf(stderr, "memo %p (type: %d) @ %s:%d\n", memo, imemo_type(memo), file, line); return memo; } diff --git a/internal.h b/internal.h index 317e2e4072..76435c16b0 100644 --- a/internal.h +++ b/internal.h @@ -585,11 +585,7 @@ struct vm_ifunc { ID id; }; -#if IMEMO_DEBUG -#define IFUNC_NEW(a, b) ((struct vm_ifunc *)rb_imemo_new_debug(imemo_ifunc, (VALUE)(a), (VALUE)(b), 0, 0, __FILE__, __LINE__)) -#else #define IFUNC_NEW(a, b) ((struct vm_ifunc *)rb_imemo_new(imemo_ifunc, (VALUE)(a), (VALUE)(b), 0, 0)) -#endif /* MEMO */ @@ -611,11 +607,7 @@ struct MEMO { #define MEMO_CAST(m) ((struct MEMO *)m) -#if IMEMO_DEBUG -#define MEMO_NEW(a, b, c) ((struct MEMO *)rb_imemo_new_debug(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0, __FILE__, __LINE__)) -#else #define MEMO_NEW(a, b, c) ((struct MEMO *)rb_imemo_new(imemo_memo, (VALUE)(a), (VALUE)(b), (VALUE)(c), 0)) -#endif #define type_roomof(x, y) ((sizeof(x) + sizeof(y) - 1) / sizeof(y)) #define MEMO_FOR(type, value) ((type *)RARRAY_PTR(value)) @@ -1299,9 +1291,10 @@ void rb_gc_mark_values(long n, const VALUE *values); #if IMEMO_DEBUG VALUE rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line); -#endif - +#define rb_imemo_new(type, v1, v2, v3, v0) rb_imemo_new_debug(type, v1, v2, v3, v0, __FILE__, __LINE__) +#else VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0); +#endif RUBY_SYMBOL_EXPORT_END |