Index: src/pmc/class.pmc =================================================================== --- src/pmc/class.pmc (版本 35515) +++ src/pmc/class.pmc (工作副本) @@ -80,10 +80,6 @@ A cache of visible attribute names to attribute indexes. A Null PMC is allocated during initialization. -=item C - -Cache of the vtable used for objects (only STM). - =item C A list of method names the class provides used for name conflict resolution. @@ -429,7 +425,6 @@ ATTR PMC *attrib_metadata; /* Hash of attributes in this class to hashes of metadata. */ ATTR PMC *attrib_index; /* Lookup table for attributes in this and parents. */ ATTR PMC *attrib_cache; /* Cache of visible attrib names to indexes. */ - ATTR PMC *vtable_cache; /* Cache of the vtable used for objects (only STM). */ ATTR PMC *resolve_method; /* List of method names the class provides to resolve * conflicts with methods from roles. */ ATTR PMC *parent_overrides; @@ -468,7 +463,6 @@ _class->attrib_metadata = pmc_new(interp, enum_class_Hash); _class->attrib_index = PMCNULL; _class->attrib_cache = PMCNULL; - _class->vtable_cache = PMCNULL; /* only used for STM */ _class->resolve_method = pmc_new(interp, enum_class_ResizablePMCArray); _class->vtable_overrides = pmc_new(interp, enum_class_Hash); Index: src/pmc/object.pmc =================================================================== --- src/pmc/object.pmc (版本 35515) +++ src/pmc/object.pmc (工作副本) @@ -791,7 +791,6 @@ PMC *classobj; Parrot_Interp master; INTVAL type_num; - PMC *vtable_cache = PMCNULL; if (PObj_is_PMC_shared_TEST(SELF)) return SELF; @@ -800,17 +799,6 @@ classobj = VTABLE_get_class(INTERP, SELF); type_num = SELF->vtable->base_type; - /* keep the original vtable from going away... */ - vtable_cache = PARROT_CLASS(classobj)->vtable_cache; - if (PMC_IS_NULL(vtable_cache)) { - vtable_cache = pmc_new(INTERP, enum_class_VtableCache); - PMC_struct_val(vtable_cache) = INTERP->vtables[type_num]; - PARROT_CLASS(classobj)->vtable_cache = vtable_cache; - } - - add_pmc_sync(INTERP, vtable_cache); - PObj_is_PMC_shared_SET(vtable_cache); - /* make sure metadata doesn't go away unexpectedly */ if (PMC_metadata(pmc)) PMC_metadata(pmc) = pt_shared_fixup(interp, PMC_metadata(pmc));