/* Sun-$Revision: 23.3 $ */ /* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University. See the LICENSE file for license information. */ # pragma interface struct slotsOopClass: oopsOopClass { // constructor friend slotsOop as_slotsOop(void* p) { return (slotsOop) as_oopsOop(p); } // accessors slotsOopClass* addr() { return (slotsOopClass*) oopsOopClass::addr(); } // creation operation friend slotsOop create_slots(fint size); // cloning operation (just putting a nice return type on the fn's) slotsOop clone(bool mustAllocate= true) { return (slotsOop) oopsOopClass::clone(mustAllocate); } slotsOop cloneSize(fint length, bool mustAllocate= true, oop filler= NULL) { return (slotsOop) oopsOopClass::cloneSize(length, mustAllocate, filler); } // primitives oop add_slots_prim(oop contents, void *FH); oop add_slots_if_absent_prim(oop contents, void *FH); oop copy_add_slot_prim(stringOop name, oop contents, bool isP, bool isA, oop anno, void *FH); // called by above oop copy_add_slot_fixing_up_method( stringOop name, slotType t, oop contents, oop anno, bool mustAllocate= false); oop copy_remove_slot_fixing_up_method(stringOop name, bool mustAllocate); oop remove_slot_prim(stringOop name, void *FH); oop remove_all_slots_prim(void *FH); oop copy_remove_slot_prim(stringOop name, void *FH); oop create_block_prim(); }; oop clone0_prim(slotsOop rcvr); oop clone1_prim(slotsOop rcvr); oop clone2_prim(slotsOop rcvr); oop clone3_prim(slotsOop rcvr); oop clone4_prim(slotsOop rcvr); oop clone5_prim(slotsOop rcvr); oop clone6_prim(slotsOop rcvr); oop clone7_prim(slotsOop rcvr); oop clone8_prim(slotsOop rcvr); oop clone9_prim(slotsOop rcvr);