/* Sun-$Revision: 23.3 $ */ /* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University. See the LICENSE file for license information. */ # pragma interface class immediateMap: public Map { public: fint size() { return (sizeof(immediateMap) + sizeof(slotDesc)) / sizeof(oop); } // slot operations (a single fixed parent slot) fint length_slots() { return 1; } fint length_nonVM_slots() { return 1; } // cloning operations oop clone(oop obj, bool mustAllocate= true, oop genObj= NULL) { UsedOnlyInAssert(obj); Unused(mustAllocate); Unused(genObj); assert(obj->is_smi() || obj->is_float(), "object isn't immediate"); return obj; } bool can_inline_clone() { return false; } oop cloneSize(oop obj, fint length, bool mustAllocate= true, oop filler= NULL) { Unused(length); Unused(mustAllocate); Unused(filler); ShouldNotCallThis(); // cannot resize an immediate oop return obj; } // memory operations bool verify(oop obj) { Unused(obj); return true; } virtual oop scavenge(oop obj) { return obj; } // bogus operations void switch_pointer(oop obj, oop* where, oop to) { Unused(obj); Unused(where); Unused(to); ShouldNotCallThis(); } fint empty_object_size() { ShouldNotCallThis(); return 0; } fint object_size(oop obj) { Unused(obj); ShouldNotCallThis(); return 0; } fint object_byte_size(oop obj) { Unused(obj); return 0; } bool is_enumerable(oop obj, oop* matching_cell) { Unused(obj); Unused(matching_cell); ShouldNotCallThis(); return false; } // creation operation oop fill_in_slots(slotList* slist, fint slotCount); };