SnapShotImageMemory.st
changeset 1552 298232956ca8
parent 1551 6d0cb201dc8a
child 1584 51c53d6656f4
equal deleted inserted replaced
1551:6d0cb201dc8a 1552:298232956ca8
    28 	poolDictionaries:''
    28 	poolDictionaries:''
    29 	privateIn:SnapShotImageMemory
    29 	privateIn:SnapShotImageMemory
    30 !
    30 !
    31 
    31 
    32 SnapShotImageMemory::ImageObject variableSubclass:#ImageMethodObject
    32 SnapShotImageMemory::ImageObject variableSubclass:#ImageMethodObject
    33 	instanceVariableNames:'cachedPackage'
    33 	instanceVariableNames:'cachedPackage cachedMClass cachedSelector'
    34 	classVariableNames:''
    34 	classVariableNames:''
    35 	poolDictionaries:''
    35 	poolDictionaries:''
    36 	privateIn:SnapShotImageMemory
    36 	privateIn:SnapShotImageMemory
    37 !
    37 !
    38 
    38 
  1353         aStream notNil ifTrue:[^ aStream].
  1353         aStream notNil ifTrue:[^ aStream].
  1354     ].
  1354     ].
  1355     ^ nil
  1355     ^ nil
  1356 !
  1356 !
  1357 
  1357 
       
  1358 mclass
       
  1359     cachedMClass isNil ifTrue:[
       
  1360         cachedMClass := super mclass.
       
  1361     ].
       
  1362     ^ cachedMClass
       
  1363 !
       
  1364 
  1358 package
  1365 package
  1359     |packageSlotOffset packagePtr packageRef package|
  1366     |packageSlotOffset packagePtr packageRef package|
  1360 
  1367 
  1361     cachedPackage isNil ifTrue:[
  1368     cachedPackage isNil ifTrue:[
  1362         packageSlotOffset := Method instVarOffsetOf:'package'.
  1369         packageSlotOffset := Method instVarOffsetOf:'package'.
  1373         ].
  1380         ].
  1374         package := memory fetchStringFor:packageRef.
  1381         package := memory fetchStringFor:packageRef.
  1375         cachedPackage := package asSymbol
  1382         cachedPackage := package asSymbol
  1376     ].
  1383     ].
  1377     ^ cachedPackage
  1384     ^ cachedPackage
       
  1385 !
       
  1386 
       
  1387 selector
       
  1388     cachedSelector isNil ifTrue:[
       
  1389         self mclass methodDictionary keysAndValuesDo:[:sel :mthd | mthd == self ifTrue:[cachedSelector := sel]].
       
  1390     ].
       
  1391     ^ cachedSelector
  1378 !
  1392 !
  1379 
  1393 
  1380 source
  1394 source
  1381     |sourcePosition sourcePositionPtr sourcePtr sourceRef source aStream junk|
  1395     |sourcePosition sourcePositionPtr sourcePtr sourceRef source aStream junk|
  1382 
  1396