summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-18 22:26:57 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-06-18 22:26:57 +0000
commitd879849b6e874557c27d6a63e50ea9d0af04acef (patch)
tree842922f64887edc685472244ec949eaa3c52f12b /gc.c
parent0393a91926199318bdd539e6ef2d59b0b616f4ba (diff)
* gc.c (make_deferred): clear flags to T_ZOMBIE.
* gc.c (slot_sweep_body): fix indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/gc.c b/gc.c
index 5ea9ec7a60..a68e397581 100644
--- a/gc.c
+++ b/gc.c
@@ -1151,7 +1151,7 @@ free_unused_heaps(rb_objspace_t *objspace)
static inline void
make_deferred(RVALUE *p)
{
- p->as.basic.flags = (p->as.basic.flags & ~T_MASK) | T_ZOMBIE;
+ p->as.basic.flags = T_ZOMBIE;
}
static inline void
@@ -2200,19 +2200,16 @@ slot_sweep_body(rb_objspace_t *objspace, struct heaps_slot *sweep_slot, const in
if ((bitset & 1) && BUILTIN_TYPE(p) != T_ZOMBIE) {
if (p->as.basic.flags) {
#if GC_PROFILE_MORE_DETAIL
- if(record)
- record->removing_objects++;
+ if(record) record->removing_objects++;
#endif
rgengc_report(3, objspace, "slot_sweep_body: free %p (%s)\n", p, obj_type_name((VALUE)p));
#if USE_RGENGC && RGENGC_CHECK_MODE
if (objspace->rgengc.during_minor_gc && RVALUE_PROMOTED(p)) rb_bug("slot_sweep_body: %p (%s) is promoted.\n", p, obj_type_name((VALUE)p));
if (rgengc_remembered(objspace, (VALUE)p)) rb_bug("slot_sweep_body: %p (%s) is remembered.\n", p, obj_type_name((VALUE)p));
#endif
- if ((deferred = obj_free(objspace, (VALUE)p)) ||
- (FL_TEST(p, FL_FINALIZE))) {
+ if ((deferred = obj_free(objspace, (VALUE)p)) || (FL_TEST(p, FL_FINALIZE))) {
if (!deferred) {
p->as.free.flags = T_ZOMBIE;
-
RDATA(p)->dfree = 0;
}
p->as.free.next = deferred_final_list;