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
This commit is contained in:
parent
4f06c9f64d
commit
55152ae26d
5
gc.c
5
gc.c
@ -1787,6 +1787,8 @@ rb_node_newnode(enum node_type type, VALUE a0, VALUE a1, VALUE a2)
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#undef rb_imemo_new
|
||||||
|
|
||||||
VALUE
|
VALUE
|
||||||
rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0)
|
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
|
VALUE
|
||||||
rb_imemo_new_debug(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0, const char *file, int line)
|
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 = rb_imemo_new(type, v1, v2, v3, v0);
|
||||||
VALUE memo = newobj_of(v0, flags, v1, v2, v3);
|
|
||||||
fprintf(stderr, "memo %p (type: %d) @ %s:%d\n", memo, imemo_type(memo), file, line);
|
fprintf(stderr, "memo %p (type: %d) @ %s:%d\n", memo, imemo_type(memo), file, line);
|
||||||
return memo;
|
return memo;
|
||||||
}
|
}
|
||||||
|
13
internal.h
13
internal.h
@ -585,11 +585,7 @@ struct vm_ifunc {
|
|||||||
ID id;
|
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))
|
#define IFUNC_NEW(a, b) ((struct vm_ifunc *)rb_imemo_new(imemo_ifunc, (VALUE)(a), (VALUE)(b), 0, 0))
|
||||||
#endif
|
|
||||||
|
|
||||||
/* MEMO */
|
/* MEMO */
|
||||||
|
|
||||||
@ -611,11 +607,7 @@ struct MEMO {
|
|||||||
|
|
||||||
#define MEMO_CAST(m) ((struct MEMO *)m)
|
#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))
|
#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 type_roomof(x, y) ((sizeof(x) + sizeof(y) - 1) / sizeof(y))
|
||||||
#define MEMO_FOR(type, value) ((type *)RARRAY_PTR(value))
|
#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
|
#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);
|
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);
|
VALUE rb_imemo_new(enum imemo_type type, VALUE v1, VALUE v2, VALUE v3, VALUE v0);
|
||||||
|
#endif
|
||||||
|
|
||||||
RUBY_SYMBOL_EXPORT_END
|
RUBY_SYMBOL_EXPORT_END
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user