Main Page   Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

byteVectorMap.h

This is the verbatim text of the byteVectorMap.h include file.
/* Sun-$Revision: 23.3 $ */

/* Copyright 1992-9 Sun Microsystems, Inc. and Stanford University.
   See the LICENSE file for license information. */

# pragma interface

class byteVectorMap: public slotsMapDeps {
 public:
  // testers
  bool is_byteVector() { return true; }
  
  // accessors
  fint length_byte_array(oop obj) {
    assert_byteVector(obj, "not a byte vector");
    return byteVectorOop(obj)->length(); }
  
  char* byte_array(oop obj, fint which = 0) {
    assert_byteVector(obj, "not a byte vector");
    return byteVectorOop(obj)->bytes(which); }
  
  char byte_at(oop obj, fint which) {
    assert_byteVector(obj, "not a byte vector");
    assert(which >= 0 && which < length_byte_array(obj),
           "accessing out of bounds");
    return byteVectorOop(obj)->byte_at(which); }
  
  void byte_at_put(oop obj, fint which, char contents) {
    assert_byteVector(obj, "not a byte vector");
    assert(which >= 0 && which < length_byte_array(obj),
           "storing out of bounds");
    byteVectorOop(obj)->byte_at_put(which, contents); }
  
  // cloning operations
  oop clone(oop obj, bool mustAllocate= true, oop genObj= NULL);
  bool can_inline_clone() { return false; }
  oop cloneSize(oop obj, fint len, bool mustAllocate= true, oop filler= NULL);
  
  // creation operations
  friend byteVectorOop create_byteVector(slotList* slots);
  slotsOop create_object(fint size) { return create_byteVector(size); }
  
  // mirror operation
  mirrorOop mirror_proto() { return Memory->byteVectorMirrorObj; }
  
  // size operations
  fint empty_object_size();
  fint object_byte_size(oop obj) {
    return slotsMapDeps::object_byte_size(obj) + length_byte_array(obj); }
  
  // memory operations
  virtual oop scavenge(oop obj);
  bool verify(oop obj);
  bool verifyBytesPart(oop obj, char*& b);

 private:
  // profiler operation
  void dummy_initialize(oop obj, oop filler);

  // printing support
  void print_byteVector(oop obj);
};

Generated at Tue Jun 27 12:13:02 2000 for SelfVM by doxygen 1.0.0 written by Dimitri van Heesch, © 1997-1999