/* Sun-$Revision: 23.3 $ */ /* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University. See the LICENSE file for license information. */ # pragma interface // stringOops are canonical strings; all stringOops are registered in the // string table class stringMap: public byteVectorMap { public: // testers bool is_string() { return true; } bool is_programmable_slots() { return false; } // if you ever change this, must go back and look at create_initial_strings bool should_canonicalize() { return false; } // constructors friend void create_initial_strings(oop parent); // mirror operation mirrorOop mirror_proto() { return Memory->stringMirrorObj; } // creation operations slotsOop create_object(fint size) { return create_string(size); } // cloning operations bool can_inline_clone() { return false; } oop clone(oop obj, bool mustAllocate= true, oop genObj= NULL); oop cloneSize(oop obj, fint len, bool mustAllocate= true, oop filler= NULL); // memory operations virtual oop scavenge(oop obj); bool verify(oop obj); int32 debug_size(oop p); // printing operations void print_string(oop obj, char* buf); void print_oop(oop obj); void print(oop obj); };