From: "Charles E. Thornton" Date: 2005-08-21T02:57:18+09:00 Subject: Wandering in the Wilderness Project That leaves Question #2 and an Extra Thought 2) 'special_generic_ivar' - a) Is this to trigger Garbage Collection ONLY for Special Constant Values? - b) If it is - Is it because there is no real object in Object Space to trigger GC? 2a) 'Special Constant' Values are defined as? aa) rb_special_const_p(obj) returns TRUE if 'obj' is a Special Constant Value: rb_special_const_p(obj) VALUE obj { if (SPECIAL_CONST_P(obj)) return Qtrue; return Qfalse; } bb) SPECIAL_CONST_P(obj) returns TRUE if ( IMMEDIATE_P(obj) || !RTEST(obj) ) is TRUE IMMEDIATE_P(obj) is TRUE if ( (obj) & 03 ) is non-zero !RTEST(obj) is TRUE if obj = is not QNIL & is not QFALSE Now am I crazy or does "rb_special_const_p(obj)" return TRUE only if: 1) lsb 0 = 1 (FIXNUM) 2) lsb 1 = 1 (SYMBOL, TRUE, or UNDEF) 3) !RTEST == TRUE if ( not NIL and not FALSE) WHY are QNIL and QFALSE excluded in a test for non-reference VALUES?? Did I fail LOGIC 101? (Hope Not, I a Computer Science Degree!) -- GodFather -- 667 Neighbor of the Beast