diff -r 540781421bbf -r f3eda2f72399 SnapShotImageMemory.st --- a/SnapShotImageMemory.st Wed Nov 22 13:20:24 2000 +0100 +++ b/SnapShotImageMemory.st Thu Nov 23 14:20:39 2000 +0100 @@ -15,13 +15,6 @@ privateIn:SnapShotImageMemory ! -Object subclass:#SpaceInfo - instanceVariableNames:'start end size flags imageBase' - classVariableNames:'' - poolDictionaries:'' - privateIn:SnapShotImageMemory -! - SnapShotImageMemory::ImageHeader variableSubclass:#ImageObject instanceVariableNames:'cachedContents' classVariableNames:'' @@ -36,6 +29,13 @@ privateIn:SnapShotImageMemory ! +Object subclass:#SpaceInfo + instanceVariableNames:'start end size flags imageBase' + classVariableNames:'' + poolDictionaries:'' + privateIn:SnapShotImageMemory +! + SnapShotImageMemory::ImageHeader variableByteSubclass:#ImageByteObject instanceVariableNames:'' classVariableNames:'' @@ -69,12 +69,14 @@ globalEntries "return the value of the instance variable 'globalEntries' (automatically generated)" - ^ globalEntries! + ^ globalEntries +! globalEntries:something "set the value of the instance variable 'globalEntries' (automatically generated)" - globalEntries := something.! + globalEntries := something. +! image @@ -89,12 +91,14 @@ ptrSize "return the value of the instance variable 'ptrSize' (automatically generated)" - ^ ptrSize! + ^ ptrSize +! ptrSize:something "set the value of the instance variable 'ptrSize' (automatically generated)" - ptrSize := something.! ! + ptrSize := something. +! ! !SnapShotImageMemory methodsFor:'object access'! @@ -287,7 +291,8 @@ (aByteArrayRef isImageBytes) ifFalse:[self halt]. nBytes := aByteArrayRef byteSize - (intSize * 3). - ^ ((ByteArray new:nBytes) replaceFrom:1 to:nBytes-1 with:aByteArrayRef startingAt:1).! + ^ ((ByteArray new:nBytes) replaceFrom:1 to:nBytes-1 with:aByteArrayRef startingAt:1). +! fetchStringFor:aStringRef |nBytes| @@ -681,12 +686,14 @@ bits "return the value of the instance variable 'bits' (automatically generated)" - ^ bits! + ^ bits +! bits:something "set the value of the instance variable 'bits' (automatically generated)" - bits := something.! + bits := something. +! byteSize "return the value of the instance variable 'size' (automatically generated)" @@ -704,22 +711,26 @@ classRef "return the value of the instance variable 'classRef' (automatically generated)" - ^ classRef! + ^ classRef +! classRef:something "set the value of the instance variable 'classRef' (automatically generated)" - classRef := something.! + classRef := something. +! memory "return the value of the instance variable 'memory' (automatically generated)" - ^ memory! + ^ memory +! memory:something "set the value of the instance variable 'memory' (automatically generated)" - memory := something.! ! + memory := something. +! ! !SnapShotImageMemory::ImageHeader methodsFor:'queries'! @@ -736,7 +747,8 @@ ! isBehavior - ^ self isImageBehavior! + ^ self isImageBehavior +! isImageBehavior |flags| @@ -777,7 +789,8 @@ ! isLazyMethod - ^ classRef name = 'LazyMethod'! + ^ classRef name = 'LazyMethod' +! isMeta ^ false @@ -807,58 +820,6 @@ ^ classRef name = 'String' ! ! -!SnapShotImageMemory::SpaceInfo methodsFor:'accessing'! - -end - "return the value of the instance variable 'end' (automatically generated)" - - ^ end! - -end:something - "set the value of the instance variable 'end' (automatically generated)" - - end := something.! - -flags - "return the value of the instance variable 'flags' (automatically generated)" - - ^ flags! - -flags:something - "set the value of the instance variable 'flags' (automatically generated)" - - flags := something.! - -imageBase - "return the value of the instance variable 'imageBase' (automatically generated)" - - ^ imageBase! - -imageBase:something - "set the value of the instance variable 'imageBase' (automatically generated)" - - imageBase := something.! - -size - "return the value of the instance variable 'size' (automatically generated)" - - ^ size! - -size:something - "set the value of the instance variable 'size' (automatically generated)" - - size := something.! - -start - "return the value of the instance variable 'start' (automatically generated)" - - ^ start! - -start:something - "set the value of the instance variable 'start' (automatically generated)" - - start := something.! ! - !SnapShotImageMemory::ImageObject methodsFor:'method protocol'! byteCode @@ -913,46 +874,59 @@ self isMethodOrLazyMethod ifTrue:[ ^ self mclass ]. - self halt.! + self halt. +! hasCode - ^ false! + ^ false +! isBreakpointed - ^ false! + ^ false +! isCounting - ^ false! + ^ false +! isCountingMemoryUsage - ^ false! + ^ false +! isDynamic - ^ false! + ^ false +! isExecutable self isMethod ifTrue:[ ^ false ]. - self halt.! + self halt. +! isIgnored - ^ false! + ^ false +! isPrivate - ^ false! + ^ false +! isProtected - ^ false! + ^ false +! isPublic - ^ true! + ^ true +! isTimed - ^ false! + ^ false +! isTraced - ^ false! + ^ false +! isWrapped ^ false @@ -1060,14 +1034,16 @@ ! previousVersion - ^ nil! + ^ nil +! printStringForBrowserWithSelector:selector ^ selector ! privacy - ^ #public! + ^ #public +! resources ^ nil @@ -1112,7 +1088,8 @@ self sourcePosition notNil ifTrue:[^ self source]. ^ nil ]. - self halt.! + self halt. +! sourceLineNumber self isMethodOrLazyMethod ifTrue:[ @@ -1129,7 +1106,8 @@ sourcePosition isNil ifTrue:[^ sourcePosition]. ^ sourcePosition abs ]. - self halt.! + self halt. +! sourcePositionValue |sourcePosition sourcePositionPtr| @@ -1139,7 +1117,8 @@ sourcePosition := memory fetchObjectAt:sourcePositionPtr. ^ sourcePosition ]. - self halt.! + self halt. +! sourceStream |sourcePosition source aStream fileName junk who @@ -1265,7 +1244,8 @@ ]. ^ cachedContents at:aSelector ifAbsent:exceptionValue ]. - self halt.! + self halt. +! cacheMethodDictionary |symPtr symRef mthdPtr mthdRef s| @@ -1282,7 +1262,8 @@ mthdRef := memory fetchObjectAt:mthdPtr. cachedContents at:s asSymbol put:mthdRef. ]. - ].! + ]. +! do:aBlock self isMethodDictionary ifTrue:[ @@ -1302,7 +1283,8 @@ ]. ^ cachedContents includesKey:aSelector ]. - self halt.! + self halt. +! keyAtValue:aMethod ifAbsent:exceptionValue self isMethodDictionary ifTrue:[ @@ -1311,7 +1293,8 @@ ]. ^ cachedContents keyAtValue:aMethod ifAbsent:exceptionValue ]. - self halt.! + self halt. +! keysAndValuesDo:aBlock self isMethodDictionary ifTrue:[ @@ -1343,7 +1326,8 @@ ! categorySlot - ^ self at:(Class instVarOffsetOf:'category')! + ^ self at:(Class instVarOffsetOf:'category') +! classFilename |classFilenameRef classFilename| @@ -1355,10 +1339,12 @@ classFilenameRef notNil ifTrue:[ classFilename := memory fetchStringFor:classFilenameRef. ]. - ^ classFilename! + ^ classFilename +! classFilenameSlot - ^ self at:(Class instVarOffsetOf:'classFilename')! + ^ self at:(Class instVarOffsetOf:'classFilename') +! classVarNames |classVarNamesRef classVarNames s| @@ -1417,7 +1403,8 @@ ! commentSlot - ^ self at:(Class instVarOffsetOf:'comment')! + ^ self at:(Class instVarOffsetOf:'comment') +! flags |flags amount| @@ -1432,16 +1419,19 @@ ! flagsSlot - ^ self at:(Class instVarOffsetOf:'flags')! + ^ self at:(Class instVarOffsetOf:'flags') +! instSize |instSizeRef| instSizeRef := self instSizeSlot. - ^ memory fetchObjectAt:instSizeRef.! + ^ memory fetchObjectAt:instSizeRef. +! instSizeSlot - ^ self at:(Class instVarOffsetOf:'instSize')! + ^ self at:(Class instVarOffsetOf:'instSize') +! instVarNames |instVarNamesRef instVarNames s| @@ -1466,7 +1456,8 @@ ]. ]. ]. - ^ instVarNames ? #()! + ^ instVarNames ? #() +! instVarsSlot ^ self at:6 @@ -1484,7 +1475,8 @@ ! methodDictionarySlot - ^ self at:(Class instVarOffsetOf:'methodDictionary')! + ^ self at:(Class instVarOffsetOf:'methodDictionary') +! name |nameRef name| @@ -1507,10 +1499,12 @@ ! nameSlot - ^ self at:(Class instVarOffsetOf:'name')! + ^ self at:(Class instVarOffsetOf:'name') +! packageSlot - ^ self at:(Class instVarOffsetOf:'package')! + ^ self at:(Class instVarOffsetOf:'package') +! primitiveSpec |primitiveSpecRef primitiveSpec| @@ -1526,7 +1520,8 @@ ! primitiveSpecSlot - ^ self at:(Class instVarOffsetOf:'primitiveSpec')! + ^ self at:(Class instVarOffsetOf:'primitiveSpec') +! revision |revisionRef revision| @@ -1538,7 +1533,8 @@ revisionRef notNil ifTrue:[ revision := memory fetchStringFor:revisionRef. ]. - ^ revision! + ^ revision +! revisionSlot ^ self at:14 @@ -1572,7 +1568,8 @@ (classvars := self classVariableString) notNil ifTrue:[ aCollection addAll:(classvars asCollectionOfWords). ]. - ^ aCollection! + ^ aCollection +! addAllInstVarNamesTo:aCollection |superInsts instvars superclass| @@ -1581,19 +1578,23 @@ self superclass addAllInstVarNamesTo:aCollection ]. aCollection addAll:self instVarNames. - ^ aCollection! - -addChangeRecordForClassFileOut:aClass! + ^ aCollection +! + +addChangeRecordForClassFileOut:aClass +! allClassVarNames "return a collection of all the class variable name-strings this includes all superclass-class variables" - ^ self addAllClassVarNamesTo:(OrderedCollection new)! + ^ self addAllClassVarNamesTo:(OrderedCollection new) +! allInstVarNames self superclass isNil ifTrue:[^ self instVarNames]. - ^ self addAllInstVarNamesTo:(OrderedCollection new)! + ^ self addAllInstVarNamesTo:(OrderedCollection new) +! allSubclassesDo:aBlock "evaluate aBlock for all of my subclasses. @@ -1642,7 +1643,8 @@ " String allSuperclasses - "! + " +! allSuperclassesDo:aBlock "evaluate aBlock for all of my superclasses" @@ -1666,7 +1668,8 @@ self basicFileOutDefinitionOn:aStream withNameSpace:forceNameSpace - withPackage:true! + withPackage:true +! basicFileOutDefinitionOn:aStream withNameSpace:forceNameSpace withPackage:showPackage "append an expression on aStream, which defines myself." @@ -1837,7 +1840,8 @@ "Created: / 4.1.1997 / 20:38:16 / cg" "Modified: / 8.8.1997 / 10:59:50 / cg" - "Modified: / 18.3.1999 / 18:15:46 / stefan"! + "Modified: / 18.3.1999 / 18:15:46 / stefan" +! basicFileOutInstvarTypeKeywordOn:aStream "a helper for fileOutDefinition" @@ -1899,7 +1903,8 @@ "Created: 7.12.1995 / 10:58:47 / cg" "Modified: 1.4.1997 / 23:33:01 / stefan" - "Modified: 9.9.1997 / 12:05:41 / cg"! + "Modified: 9.9.1997 / 12:05:41 / cg" +! compiledMethodAt:aSelector @@ -1950,7 +1955,8 @@ "/ self addChangeRecordForClassFileOut:self "Modified: / 7.6.1996 / 09:14:43 / stefan" - "Modified: / 27.8.1998 / 02:02:57 / cg"! + "Modified: / 27.8.1998 / 02:02:57 / cg" +! fileOutAllDefinitionsOn:aStream "append expressions on aStream, which defines myself and all of my private classes." @@ -1979,7 +1985,8 @@ ]. "Created: 15.10.1996 / 11:15:19 / cg" - "Modified: 22.3.1997 / 16:11:56 / cg"! + "Modified: 22.3.1997 / 16:11:56 / cg" +! fileOutAs:fileNameString "create a file consisting of all methods in myself in @@ -2129,7 +2136,8 @@ "Modified: / 7.6.1996 / 09:14:43 / stefan" "Created: / 16.4.1997 / 20:44:05 / cg" - "Modified: / 12.8.1998 / 11:14:56 / cg"! + "Modified: / 12.8.1998 / 11:14:56 / cg" +! fileOutCategory:aCategory "create a file 'class-category.st' consisting of all methods in aCategory. @@ -2166,7 +2174,8 @@ "Modified: / 1.4.1997 / 16:00:24 / stefan" "Created: / 1.4.1997 / 16:04:18 / stefan" - "Modified: / 28.10.1997 / 14:40:28 / cg"! + "Modified: / 28.10.1997 / 14:40:28 / cg" +! fileOutCategory:aCategory except:skippedMethods only:savedMethods methodFilter:methodFilter on:aStream |dict source sortedSelectors first privacy interestingMethods cat| @@ -2247,17 +2256,20 @@ "Modified: 28.8.1995 / 14:30:41 / claus" "Modified: 12.6.1996 / 11:37:33 / stefan" "Modified: 15.11.1996 / 11:32:21 / cg" - "Created: 1.4.1997 / 16:04:33 / stefan"! + "Created: 1.4.1997 / 16:04:33 / stefan" +! fileOutCategory:aCategory methodFilter:methodFilter on:aStream "file out all methods belonging to aCategory, aString onto aStream" - self fileOutCategory:aCategory except:nil only:nil methodFilter:methodFilter on:aStream! + self fileOutCategory:aCategory except:nil only:nil methodFilter:methodFilter on:aStream +! fileOutCategory:aCategory on:aStream Class fileOutNameSpaceQuerySignal answer:true do:[ self fileOutCategory:aCategory except:nil only:nil methodFilter:nil on:aStream - ]! + ] +! fileOutClassInstVarDefinitionOn:aStream withNameSpace:withNameSpace "append an expression to define my classInstanceVariables on aStream" @@ -2308,7 +2320,8 @@ fileOutDefinitionOn:aStream "append an expression on aStream, which defines myself." - ^ self basicFileOutDefinitionOn:aStream withNameSpace:false! + ^ self basicFileOutDefinitionOn:aStream withNameSpace:false +! fileOutMethod:aMethod |aStream fileName selector| @@ -2346,7 +2359,8 @@ "Modified: / 1.4.1997 / 16:00:57 / stefan" "Created: / 2.4.1997 / 00:24:28 / stefan" - "Modified: / 28.10.1997 / 14:40:34 / cg"! + "Modified: / 28.10.1997 / 14:40:34 / cg" +! fileOutMethod:aMethod on:aStream |dict cat source privacy| @@ -2386,17 +2400,20 @@ "Modified: 27.8.1995 / 01:23:19 / claus" "Modified: 12.6.1996 / 11:44:41 / stefan" "Modified: 15.11.1996 / 11:32:43 / cg" - "Created: 2.4.1997 / 00:24:33 / stefan"! + "Created: 2.4.1997 / 00:24:33 / stefan" +! fileOutOn:aStream - ^ self fileOutOn:aStream withTimeStamp:true! + ^ self fileOutOn:aStream withTimeStamp:true +! fileOutOn:aStream withTimeStamp:stampIt "file out my definition and all methods onto aStream. If stampIt is true, a timeStamp comment is prepended." - self fileOutOn:aStream withTimeStamp:stampIt withInitialize:true! + self fileOutOn:aStream withTimeStamp:stampIt withInitialize:true +! fileOutOn:aStream withTimeStamp:stampIt withInitialize:initIt "file out my definition and all methods onto aStream. @@ -2409,7 +2426,8 @@ withTimeStamp:stampIt withInitialize:initIt withDefinition:true - methodFilter:nil! + methodFilter:nil +! fileOutOn:aStream withTimeStamp:stampIt withInitialize:initIt withDefinition:withDefinition methodFilter:methodFilter "file out my definition and all methods onto aStream. @@ -2574,7 +2592,8 @@ "Created: / 15.11.1995 / 12:53:06 / cg" "Modified: / 1.4.1997 / 16:01:05 / stefan" - "Modified: / 13.3.1998 / 12:23:59 / cg"! + "Modified: / 13.3.1998 / 12:23:59 / cg" +! fileOutPrimitiveDefinitionsOn:aStream "append primitive defs (if any) to aStream." @@ -2603,7 +2622,8 @@ aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr ]. - "Modified: 8.1.1997 / 17:45:40 / cg"! + "Modified: 8.1.1997 / 17:45:40 / cg" +! fileOutPrimitiveSpecsOn:aStream "append primitive defs (if any) to aStream." @@ -2627,7 +2647,8 @@ aStream nextPutChunkSeparator; space; nextPutChunkSeparator; cr; cr ]. - "Modified: 8.1.1997 / 17:45:51 / cg"! + "Modified: 8.1.1997 / 17:45:51 / cg" +! firstDefinitionSelectorPart "return the first part of the selector with which I was (can be) defined in my superclass" @@ -2698,18 +2719,22 @@ ]. ^ pos - "Modified: 15.1.1997 / 15:29:30 / stefan"! + "Modified: 15.1.1997 / 15:29:30 / stefan" +! hasMethods "return true, if there are any (local) methods in this class" - ^ (self methodDictionary size ~~ 0)! + ^ (self methodDictionary size ~~ 0) +! implements:aSelector - ^ self includesSelector:aSelector! + ^ self includesSelector:aSelector +! includesSelector:aSelector - ^ self methodDictionary includesKey:aSelector! + ^ self methodDictionary includesKey:aSelector +! instanceVariableString "return a string of the instance variable names" @@ -2748,6 +2773,120 @@ ^ false ! +localSourceStreamFor:sourceFile + "return an open stream on a local sourcefile, nil if that is not available" + + |fileName info module dir fn package packageDir zar entry| + + "/ + "/ old: look in 'source/' + "/ this is still kept in order to find user-private + "/ classes in her currentDirectory. + "/ + fileName := Smalltalk getSourceFileName:sourceFile. + fileName notNil ifTrue:[ + ^ fileName asFilename readStream. + ]. + + (package := self package) notNil ifTrue:[ + "/ newest sceme ... + packageDir := package copyReplaceAll:$: with:$/. + packageDir := Smalltalk getPackageFileName:packageDir. + packageDir notNil ifTrue:[ + "/ present there ? + packageDir := packageDir asFilename. + (fn := packageDir construct:sourceFile) exists ifTrue:[ + ^ fn readStream. + ]. + + "/ a source subdirectory ? + fn := (packageDir construct:'source') construct:sourceFile. + fn exists ifTrue:[ + ^ fn readStream. + ]. + + "/ a zip-file ? + fn := (packageDir construct:'source.zip'). + fn exists ifTrue:[ + zar := ZipArchive oldFileNamed:fn. + zar notNil ifTrue:[ + entry := zar extract:sourceFile. + entry notNil ifTrue:[ + ^ entry asString readStream + ] + ] + ] + ]. + + "/ will vanish ... + (package includes:$:) ifTrue:[ + package := package asString copyReplaceAll:$: with:$/ + ] ifFalse:[ + package := 'stx/' , package + ]. + fileName := Smalltalk getSourceFileName:(package , '/' , sourceFile). + fileName notNil ifTrue:[ + ^ fileName asFilename readStream. + ]. + (package startsWith:'stx/') ifTrue:[ + fileName := Smalltalk getSourceFileName:((package copyFrom:5) , '/' , sourceFile). + fileName notNil ifTrue:[ + ^ fileName asFilename readStream. + ] + ] + ]. + + "/ + "/ new: look in 'source/// + "/ this makes the symbolic links to (or copy of) the source files + "/ obsolete. + info := self packageSourceCodeInfo. + info notNil ifTrue:[ + module := info at:#module ifAbsent:nil. + module notNil ifTrue:[ + dir := info at:#directory ifAbsent:nil. + dir notNil ifTrue:[ + fn := (module asFilename construct:dir) construct:sourceFile. + fileName := Smalltalk getSourceFileName:(fn name). + fileName notNil ifTrue:[ + ^ fileName asFilename readStream. + ]. + + "/ brand new: look for source//package.zip + "/ containing an entry for + + fn := (module asFilename construct:dir) withSuffix:'zip'. + fileName := Smalltalk getSourceFileName:(fn name). + fileName notNil ifTrue:[ + zar := ZipArchive oldFileNamed:fileName. + zar notNil ifTrue:[ + entry := zar extract:sourceFile. + entry notNil ifTrue:[ + ^ entry asString readStream + ] + ] + ]. + + "/ and also in source/source.zip ... + + fileName := Smalltalk getSourceFileName:'source.zip'. + fileName notNil ifTrue:[ + zar := ZipArchive oldFileNamed:fileName. + zar notNil ifTrue:[ + entry := zar extract:sourceFile. + entry notNil ifTrue:[ + ^ entry asString readStream + ] + ] + ]. + ] + ] + ]. + ^ nil + + "Modified: / 18.7.1998 / 22:53:19 / cg" +! + nameWithoutNameSpacePrefix |nm owner| @@ -2919,7 +3058,8 @@ " "Created: 4.11.1995 / 20:36:53 / cg" - "Modified: 19.9.1997 / 10:42:25 / cg"! + "Modified: 19.9.1997 / 10:42:25 / cg" +! primitiveDefinitionsString "{ Pragma: +optSpace }" @@ -2931,21 +3071,24 @@ " Object primitiveDefinitionsString String primitiveDefinitionsString - "! + " +! primitiveFunctionsString "{ Pragma: +optSpace }" "return the primitiveFunctions string or nil" - ^ self getPrimitiveSpecsAt:3! + ^ self getPrimitiveSpecsAt:3 +! primitiveVariablesString "{ Pragma: +optSpace }" "return the primitiveVariables string or nil" - ^ self getPrimitiveSpecsAt:2! + ^ self getPrimitiveSpecsAt:2 +! printClassNameOn:aStream |nm| @@ -2956,7 +3099,8 @@ nm := self name. ]. - aStream nextPutAll:nm.! + aStream nextPutAll:nm. +! printClassVarNamesOn:aStream indent:indent "print the class variable names indented and breaking at line end" @@ -3051,7 +3195,8 @@ "return a collection of my private classes (if any). The classes are in any order." - ^ self privateClassesOrAll:false! + ^ self privateClassesOrAll:false +! privateClassesAt:aClassNameStringOrSymbol |nmSym| @@ -3104,7 +3249,8 @@ UILayoutTool privateClassesOrAll:false " - "Modified: / 29.5.1998 / 23:23:18 / cg"! + "Modified: / 29.5.1998 / 23:23:18 / cg" +! privateClassesSorted "{ Pragma: +optSpace }" @@ -3125,7 +3271,8 @@ " "Created: 22.3.1997 / 16:10:42 / cg" - "Modified: 22.3.1997 / 16:11:20 / cg"! + "Modified: 22.3.1997 / 16:11:20 / cg" +! revisionInfo "return a dictionary filled with revision info. @@ -3155,7 +3302,8 @@ info at:#binaryRevision put:self binaryRevision. ] ]. - ^ info! + ^ info +! revisionString "{ Pragma: +optSpace }" @@ -3216,10 +3364,12 @@ "Created: 29.10.1995 / 19:28:03 / cg" "Modified: 23.10.1996 / 18:23:56 / cg" - "Modified: 1.4.1997 / 23:37:25 / stefan"! + "Modified: 1.4.1997 / 23:37:25 / stefan" +! selectorAtMethod:aMethod - ^ self selectorAtMethod:aMethod ifAbsent:[nil]! + ^ self selectorAtMethod:aMethod ifAbsent:[nil] +! selectorAtMethod:aMethod ifAbsent:failBlock |md| @@ -3229,7 +3379,8 @@ 'OOPS - nil methodDictionary' errorPrintCR. ^ nil ]. - ^ md keyAtValue:aMethod ifAbsent:failBlock.! + ^ md keyAtValue:aMethod ifAbsent:failBlock. +! soleInstance self isMeta ifFalse:[self halt]. @@ -3450,7 +3601,8 @@ theMetaclass self isMeta ifTrue:[^ self]. - ^ self classRef.! + ^ self classRef. +! theNonMetaclass |instSlotOffs clsPtr| @@ -3466,7 +3618,8 @@ This is done by checking the version methods return value against the version string as contained in the version method" - ^ true! + ^ true +! withAllSuperclasses "return a collection containing the receiver and all @@ -3484,7 +3637,8 @@ " String withAllSuperclasses - "! + " +! withAllSuperclassesDo:aBlock |sc| @@ -3544,7 +3698,8 @@ isMeta ^ self size == (Metaclass instSize). -"/ ^ classRef classRef name = 'Metaclass'! +"/ ^ classRef classRef name = 'Metaclass' +! isPrivate ^ classRef isPrivateMeta @@ -3571,7 +3726,8 @@ ! isVisualStartable - ^ false! + ^ false +! isWords ^ (self flags bitAnd:Behavior maskIndexType) == Behavior flagWords. @@ -3625,6 +3781,68 @@ ^ false ! ! +!SnapShotImageMemory::SpaceInfo methodsFor:'accessing'! + +end + "return the value of the instance variable 'end' (automatically generated)" + + ^ end +! + +end:something + "set the value of the instance variable 'end' (automatically generated)" + + end := something. +! + +flags + "return the value of the instance variable 'flags' (automatically generated)" + + ^ flags +! + +flags:something + "set the value of the instance variable 'flags' (automatically generated)" + + flags := something. +! + +imageBase + "return the value of the instance variable 'imageBase' (automatically generated)" + + ^ imageBase +! + +imageBase:something + "set the value of the instance variable 'imageBase' (automatically generated)" + + imageBase := something. +! + +size + "return the value of the instance variable 'size' (automatically generated)" + + ^ size +! + +size:something + "set the value of the instance variable 'size' (automatically generated)" + + size := something. +! + +start + "return the value of the instance variable 'start' (automatically generated)" + + ^ start +! + +start:something + "set the value of the instance variable 'start' (automatically generated)" + + start := something. +! ! + !SnapShotImageMemory::ImageByteObject methodsFor:'queries'! size