summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-13 02:38:05 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-12-13 02:38:05 +0000
commit55a77f29c1f4b3ead0699755759daba27e9c4b13 (patch)
tree833f3779ff551e700f9b6b808cd48527d49d4d42 /gc.c
parent94bc0647b219cd2d8f7e8f3de7fb99c79ea32826 (diff)
* gc.c: rename *shady* func/macros.
* RVALUE_RAW_SHADY() -> RVALUE_WB_PROTECTED_RAW() * RVALUE_SHADY() -> RVALUE_RAW_SHADY() * rgengc_check_shady() -> rgengc_check_relation(). And fix some messages using "shady" to "non-WB-protected". git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/gc.c b/gc.c
index 934f97a7d8..d74056bbb2 100644
--- a/gc.c
+++ b/gc.c
@@ -696,8 +696,8 @@ static void rgengc_rememberset_mark(rb_objspace_t *objspace, rb_heap_t *heap);
#define FL_SET2(x,f) do {if (RGENGC_CHECK_MODE && SPECIAL_CONST_P(x)) rb_bug("FL_SET2: SPECIAL_CONST"); RBASIC(x)->flags |= (f);} while (0)
#define FL_UNSET2(x,f) do {if (RGENGC_CHECK_MODE && SPECIAL_CONST_P(x)) rb_bug("FL_UNSET2: SPECIAL_CONST"); RBASIC(x)->flags &= ~(f);} while (0)
-#define RVALUE_RAW_SHADY(obj) (!FL_TEST2((obj), FL_WB_PROTECTED))
-#define RVALUE_SHADY(obj) RVALUE_RAW_SHADY(check_gen_consistency((VALUE)obj))
+#define RVALUE_WB_PROTECTED_RAW(obj) FL_TEST2((obj), FL_WB_PROTECTED)
+#define RVALUE_WB_PROTECTED(obj) RVALUE_WB_PROTECTED_RAW(check_gen_consistency((VALUE)obj))
#define RVALUE_OLDGEN_BITMAP(obj) MARKED_IN_BITMAP(GET_HEAP_OLDGEN_BITS(obj), (obj))
@@ -719,9 +719,9 @@ check_gen_consistency(VALUE obj)
}
if (promoted_flag) {
- if (RVALUE_RAW_SHADY(obj)) {
+ if (!RVALUE_WB_PROTECTED_RAW(obj)) {
const char *type = old_flag ? "old" : "young";
- rb_bug("check_gen_consistency: %p (%s) is shady, but %s object.", (void *)obj, obj_type_name(obj), type);
+ rb_bug("check_gen_consistency: %p (%s) is not WB protected, but %s object.", (void *)obj, obj_type_name(obj), type);
}
#if !RGENGC_THREEGEN
@@ -3527,11 +3527,11 @@ gc_mark_ptr(rb_objspace_t *objspace, VALUE ptr)
}
static void
-rgengc_check_shady(rb_objspace_t *objspace, VALUE obj)
+rgengc_check_relation(rb_objspace_t *objspace, VALUE obj)
{
#if USE_RGENGC
if (objspace->rgengc.parent_object_is_old) {
- if (RVALUE_SHADY(obj)) {
+ if (!RVALUE_WB_PROTECTED(obj)) {
if (rgengc_remember(objspace, obj)) {
objspace->rgengc.remembered_shady_object_count++;
}
@@ -3561,7 +3561,7 @@ gc_mark(rb_objspace_t *objspace, VALUE ptr)
if (!is_markable_object(objspace, ptr)) return;
if (LIKELY(objspace->mark_func_data == 0)) {
- rgengc_check_shady(objspace, ptr);
+ rgengc_check_relation(objspace, ptr);
if (!gc_mark_ptr(objspace, ptr)) return; /* already marked */
push_mark_stack(&objspace->mark_stack, ptr);
}
@@ -3601,7 +3601,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr)
if (LIKELY(objspace->mark_func_data == 0)) {
obj = RANY(ptr);
if (!is_markable_object(objspace, ptr)) return;
- rgengc_check_shady(objspace, ptr);
+ rgengc_check_relation(objspace, ptr);
if (!gc_mark_ptr(objspace, ptr)) return; /* already marked */
}
else {
@@ -3616,7 +3616,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr)
if (LIKELY(objspace->mark_func_data == 0)) {
/* minor/major common */
- if (!RVALUE_SHADY(obj)) {
+ if (RVALUE_WB_PROTECTED(obj)) {
if (RVALUE_INFANT_P((VALUE)obj)) {
/* infant -> young */
RVALUE_PROMOTE_INFANT((VALUE)obj);
@@ -3653,7 +3653,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr)
}
}
else {
- rgengc_report(3, objspace, "gc_mark_children: do not promote shady %p (%s).\n", (void *)obj, obj_type_name((VALUE)obj));
+ rgengc_report(3, objspace, "gc_mark_children: do not promote non-WB-protected %p (%s).\n", (void *)obj, obj_type_name((VALUE)obj));
objspace->rgengc.parent_object_is_old = FALSE;
}
}
@@ -4307,8 +4307,8 @@ allrefs_dump_i(st_data_t k, st_data_t v, st_data_t ptr)
struct reflist *refs = (struct reflist *)v;
fprintf(stderr, "[allrefs_dump_i] %p (%s%s%s%s) <- ",
(void *)obj, obj_type_name(obj),
- RVALUE_OLD_P(obj) ? "[O]" : "[Y]",
- RVALUE_SHADY(obj) ? "[S]" : "",
+ RVALUE_OLD_P(obj) ? "[O]" : "[Y]",
+ RVALUE_WB_PROTECTED(obj) ? "[W]" : "",
MARKED_IN_BITMAP(GET_HEAP_REMEMBERSET_BITS(obj), obj) ? "[R]" : "");
reflist_dump(refs);
fprintf(stderr, "\n");
@@ -4521,7 +4521,7 @@ static int
rgengc_remember(rb_objspace_t *objspace, VALUE obj)
{
rgengc_report(2, objspace, "rgengc_remember: %p (%s, %s) %s\n", (void *)obj, obj_type_name(obj),
- RVALUE_SHADY(obj) ? "shady" : "non-shady",
+ RVALUE_WB_PROTECTED(obj) ? "WB-protected" : "non-WB-protected",
rgengc_remembersetbits_get(objspace, obj) ? "was already remembered" : "is remembered now");
#if RGENGC_CHECK_MODE > 0
@@ -4539,22 +4539,20 @@ rgengc_remember(rb_objspace_t *objspace, VALUE obj)
if (RGENGC_PROFILE) {
if (!rgengc_remembered(objspace, obj)) {
- if (!RVALUE_SHADY(obj)) {
#if RGENGC_PROFILE > 0
+ if (RVALUE_WB_PROTECTED(obj)) {
objspace->profile.remembered_normal_object_count++;
#if RGENGC_PROFILE >= 2
objspace->profile.remembered_normal_object_count_types[BUILTIN_TYPE(obj)]++;
#endif
-#endif
}
else {
-#if RGENGC_PROFILE > 0
objspace->profile.remembered_shady_object_count++;
#if RGENGC_PROFILE >= 2
objspace->profile.remembered_shady_object_count_types[BUILTIN_TYPE(obj)]++;
#endif
-#endif
}
+#endif /* RGENGC_PROFILE > 0 */
}
}
@@ -4596,7 +4594,7 @@ rgengc_rememberset_mark(rb_objspace_t *objspace, rb_heap_t *heap)
/* mark before RVALUE_PROMOTE_... */
gc_mark_ptr(objspace, (VALUE)p);
- if (!RVALUE_SHADY(p)) {
+ if (RVALUE_WB_PROTECTED(p)) {
rgengc_report(2, objspace, "rgengc_rememberset_mark: clear %p (%s)\n", p, obj_type_name((VALUE)p));
#if RGENGC_THREEGEN
if (RVALUE_INFANT_P((VALUE)p)) RVALUE_PROMOTE_INFANT((VALUE)p);
@@ -4686,7 +4684,7 @@ rb_gc_writebarrier_unprotect_promoted(VALUE obj)
if (RGENGC_CHECK_MODE) {
if (!RVALUE_PROMOTED_P(obj)) rb_bug("rb_gc_writebarrier_unprotect_promoted: called on non-promoted object");
- if (RVALUE_SHADY(obj)) rb_bug("rb_gc_writebarrier_unprotect_promoted: called on shady object");
+ if (!RVALUE_WB_PROTECTED(obj)) rb_bug("rb_gc_writebarrier_unprotect_promoted: called on shady object");
}
rgengc_report(0, objspace, "rb_gc_writebarrier_unprotect_promoted: %p (%s)%s\n", (void *)obj, obj_type_name(obj),
@@ -7277,14 +7275,14 @@ rb_gcdebug_print_obj_condition(VALUE obj)
return;
}
- fprintf(stderr, "marked? : %s\n", MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj) ? "true" : "false");
+ fprintf(stderr, "marked? : %s\n", MARKED_IN_BITMAP(GET_HEAP_MARK_BITS(obj), obj) ? "true" : "false");
#if USE_RGENGC
#if RGENGC_THREEGEN
- fprintf(stderr, "young? : %s\n", RVALUE_YOUNG_P(obj) ? "true" : "false");
+ fprintf(stderr, "young? : %s\n", RVALUE_YOUNG_P(obj) ? "true" : "false");
#endif
- fprintf(stderr, "old? : %s\n", RVALUE_OLD_P(obj) ? "true" : "false");
- fprintf(stderr, "shady? : %s\n", RVALUE_SHADY(obj) ? "true" : "false");
- fprintf(stderr, "remembered?: %s\n", MARKED_IN_BITMAP(GET_HEAP_REMEMBERSET_BITS(obj), obj) ? "true" : "false");
+ fprintf(stderr, "old? : %s\n", RVALUE_OLD_P(obj) ? "true" : "false");
+ fprintf(stderr, "WB-protected?: %s\n", RVALUE_WB_PROTECTED(obj) ? "true" : "false");
+ fprintf(stderr, "remembered? : %s\n", MARKED_IN_BITMAP(GET_HEAP_REMEMBERSET_BITS(obj), obj) ? "true" : "false");
#endif
if (is_lazy_sweeping(heap_eden)) {