/* Sun-$Revision: 23.3 $ */ /* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University. See the LICENSE file for license information. */ # pragma interface class mapMap: public Map { public: // testers bool is_map() { return true; } // slot operations fint length_slots() { return 0; } fint length_nonVM_slots() { return 0; } fint size() { return sizeof(mapMap) / sizeof(oop); } fint object_size(oop obj) { return mapOop(obj)->addr()->size(); } // cloning operations oop clone(oop obj, bool mustAllocate= true, oop genObj= NULL); oop cloneSize(oop obj, fint length, bool mustAllocate= true, oop filler= NULL); // creation operation friend Map* create_mapMap(); oop fill_in_slots(slotList* slist, fint slotCount) { ShouldNotCallThis(); Unused(slist); Unused(slotCount); return badOop; } // memory operations virtual oop scavenge(oop obj); bool verify(oop obj); // programming operations void switch_pointer(oop obj, oop* where, oop to) { assert_map(obj, "obj must be map!"); mapOop(obj)->addr()->switch_pointer_in_map(where, to); } // bogus operations mirrorOop mirror_proto() { ShouldNotCallThis(); return NULL; } oop dummy_obj(oop filler) { Unused(filler); ShouldNotCallThis(); return NULL; } fint empty_object_size() { ShouldNotCallThis(); return 0; } bool is_enumerable(oop obj, oop* matching_cell) { Unused(obj); Unused(matching_cell); ShouldNotCallThis(); return false; } // printing operations void print(oop obj); };