Structure.st
changeset 2351 4371af1faf81
parent 2341 d05835f10cb8
child 3403 1ae8bfefe251
equal deleted inserted replaced
2350:16caba266df4 2351:4371af1faf81
    10  hereby transferred.
    10  hereby transferred.
    11 "
    11 "
    12 "{ Package: 'stx:libcomp' }"
    12 "{ Package: 'stx:libcomp' }"
    13 
    13 
    14 Object subclass:#Structure
    14 Object subclass:#Structure
    15         instanceVariableNames:'superclass flags methodDictionary lookupFunction instSize i1 i2 i3 i4 i5 i6 i7
    15 	instanceVariableNames:'superclass flags methodDictionary lookupFunction instSize i1 i2
    16                 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20 i21 i22 i23 i24
    16 		i3 i4 i5 i6 i7 i8 i9 i10 i11 i12 i13 i14 i15 i16 i17 i18 i19 i20
    17                 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36 i37 i38 i39 i40
    17 		i21 i22 i23 i24 i25 i26 i27 i28 i29 i30 i31 i32 i33 i34 i35 i36
    18                 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50'
    18 		i37 i38 i39 i40 i41 i42 i43 i44 i45 i46 i47 i48 i49 i50'
    19         classVariableNames:'OneInstance DummyClass ReadAccessMethods WriteAccessMethods
    19 	classVariableNames:'OneInstance DummyClass ReadAccessMethods WriteAccessMethods
    20                 OtherMethods OtherSelectors'
    20 		OtherMethods OtherSelectors'
    21         poolDictionaries:''
    21 	poolDictionaries:''
    22         category:'Programming-Support'
    22 	category:'Programming-Support'
    23 !
    23 !
    24 
    24 
    25 !Structure class methodsFor:'documentation'!
    25 !Structure class methodsFor:'documentation'!
    26 
    26 
    27 copyright
    27 copyright
   223     "/ therefore, the first behviorsInstSize instVars must correspond to Behavior instvars,
   223     "/ therefore, the first behviorsInstSize instVars must correspond to Behavior instvars,
   224     "/ the remaining ones will be the indexed instvars.
   224     "/ the remaining ones will be the indexed instvars.
   225     behviorsInstSize := Behavior instSize.
   225     behviorsInstSize := Behavior instSize.
   226 
   226 
   227     arr := Array new:(behviorsInstSize + nInsts).
   227     arr := Array new:(behviorsInstSize + nInsts).
   228     arr at:1 put:nil.                                                   "/ superclass
   228 "/    arr at:1 put:nil.                                                   "/ superclass
   229     arr at:2 put:(Behavior flagBehavior bitOr:Behavior flagPointers).   "/ flags
   229     arr at:2 put:(Behavior flagBehavior bitOr:Behavior flagPointers).   "/ flags
   230     arr at:3 put:(MethodDictionary withKeys:sels andValues:mthds).      "/ selectors & methods
   230     arr at:3 put:(MethodDictionary withKeys:sels andValues:mthds).      "/ selectors & methods
   231     arr at:4 put:behviorsInstSize.                                      "/ instSize
   231 "/    arr at:4 put:nil.                                                   "/ lookupObject
       
   232     arr at:5 put:behviorsInstSize.                                      "/ instSize
   232 
   233 
   233     "/ now, the big trick ...
   234     "/ now, the big trick ...
   234 
   235 
   235     arr changeClassTo:DummyClass.
   236     arr changeClassTo:DummyClass.
   236     arr changeClassTo:arr.
   237     arr changeClassTo:arr.
  1433 ! !
  1434 ! !
  1434 
  1435 
  1435 !Structure class methodsFor:'documentation'!
  1436 !Structure class methodsFor:'documentation'!
  1436 
  1437 
  1437 version
  1438 version
  1438     ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.24 2010-04-07 14:53:33 cg Exp $'
  1439     ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.25 2010-04-18 13:12:54 stefan Exp $'
  1439 !
  1440 !
  1440 
  1441 
  1441 version_CVS
  1442 version_CVS
  1442     ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.24 2010-04-07 14:53:33 cg Exp $'
  1443     ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.25 2010-04-18 13:12:54 stefan Exp $'
  1443 ! !
  1444 ! !
  1444 
  1445 
  1445 Structure initialize!
  1446 Structure initialize!