[strongtalk] r175 committed - Merge class instance variables into SVN

0 views
Skip to first unread message

codesite...@google.com

unread,
Sep 28, 2009, 7:56:40 PM9/28/09
to strongta...@googlegroups.com
Revision: 175
Author: StephenLRees
Date: Mon Sep 28 16:51:43 2009
Log: Merge class instance variables into SVN
http://code.google.com/p/strongtalk/source/detail?r=175

Modified:
/branches/gcc-linux/StrongtalkSource/ActivationOutliner.dlt
/branches/gcc-linux/StrongtalkSource/ClassDefinitionOutliner.dlt
/branches/gcc-linux/StrongtalkSource/StackTraceInspector.dlt
/branches/gcc-linux/StrongtalkSource/Unclassified.gr
/branches/gcc-linux/StrongtalkSource/outliner.gr
/branches/gcc-linux/StrongtalkSource/world.gr
/branches/gcc-linux/vm/memory/reflection.cpp
/branches/gcc-linux/vm/oops/klassKlass.cpp

=======================================
--- /branches/gcc-linux/StrongtalkSource/ActivationOutliner.dlt Tue Jun 9
23:05:09 2009
+++ /branches/gcc-linux/StrongtalkSource/ActivationOutliner.dlt Mon Sep 28
16:51:43 2009
@@ -123,20 +123,84 @@
^self editorBorderFor: cv
!

+buildExternalHeader ^ <Visual>
+
+ ^(StringGlyph for: 'External activation' painter: self codePainter)
asVisual!
+
currentByteCodeSeparatorCharacter ^ <Character>

^Character value: 16r1B
!

+hasSelector ^<Boolean>
+
+ ^self isMethodActivation!
+
initialPacifiedState ^ <Boolean>

^self activation isSmalltalk not!

+isBlockActivation ^<Boolean>
+
+ ^self activation isSmalltalk and: [self activation method isBlockMethod]!
+
+isExternal ^ <Boolean>
+
+ ^self activation isSmalltalk not!
+
+isMethodActivation ^<Boolean>
+
+ ^self activation isSmalltalk and: [self activation method isBlockMethod
not]!
+
+method
+
+ ^self mirror isNil
+ ifTrue: [nil]
+ ifFalse: [self mirror compiledMethodAt: self selector]!
+
+methodSource ^<Str>
+
+ ^(self hasSelector and: [self mirror notNil])
+ ifTrue: [self mirror sourceForSelector: self selector]
+ ifFalse: [self vmMethodSource]!
+
+mirror
+
+ |mirror|
+ mirror := Mirror on: self activation receiver class.
+ [mirror isNil]
+ whileFalse: [(mirror hasSelector: self selector) ifTrue: [^mirror].
+ mirror := mirror superclass].
+ ^nil!
+
safePrintString: aValue

^[aValue printString]
on: Error
- do: [:ex|'??instance of ', aValue class name]! !
+ do: [:ex|'??instance of ', aValue class name]!
+
+selector ^<Symbol>
+
+ ^self activation method selector!
+
+sourceAsCharGlyphs ^<CharGlyphs>
+
+ | vmSrc <Str> strm <CharacterReadStream> gls <OrdCltn[CharacterGlyph]> |
+
+ "Construct vm source with highligthed bci"
+ vmSrc := self methodSource.
+ strm := vmSrc readStream.
+ gls := OrderedCollection[CharacterGlyph] new: vmSrc size.
+ (vmSrc occurrencesOf: self currentByteCodeSeparatorCharacter) = 2
+ ifTrue: [ gls addAll: (self standardTextForString: (strm upTo: self
currentByteCodeSeparatorCharacter) painter: self codePainter).
+ gls addAll: (self standardTextForString: (strm upTo: self
currentByteCodeSeparatorCharacter) painter: self codeBCIPainter) ].
+ gls addAll: (self standardTextForString: strm contentsRemaining painter:
self codePainter).
+ ^gls
+!
+
+vmMethodSource ^<Str>
+
+ ^self activation vmPrettyPrint! !

! (Delta mirrorFor: #ActivationOutliner)
methodsFor: 'private-initialization' !

=======================================
--- /branches/gcc-linux/StrongtalkSource/ClassDefinitionOutliner.dlt Sat
Nov 1 12:10:49 2008
+++ /branches/gcc-linux/StrongtalkSource/ClassDefinitionOutliner.dlt Mon
Sep 28 16:51:43 2009
@@ -1,5 +1,7 @@
Delta define: #ClassDefinitionOutliner as: (
-(Class subclassOf: 'ClassOrMixinDefinitionOutliner[AbstractClassMirror]'
instanceVariables: 'superclassOutliner <SuperclassOutliner>')) !
+(Class subclassOf: 'ClassOrMixinDefinitionOutliner[AbstractClassMirror]'
instanceVariables: 'superclassOutliner <SuperclassOutliner>
+classInstanceVariableOutliner <InstanceVariableOutliner>
+addingClassInstanceVariables <Boolean>')) !

(Delta mirrorFor: #ClassDefinitionOutliner) revision: '$Revision: 1.4 $'!

@@ -19,6 +21,18 @@
do:[: l <SuperclassClauseLocator> | self superclassOutliner]
else:[super outlinerForLocator: loc]! !

+! (Delta mirrorFor: #ClassDefinitionOutliner) methodsFor: 'control' !
+
+
+addClassInstanceVariables
+
+ self open: true.
+ self addingClassInstanceVariables: true.
+ [ self updateBody ] ensure: [ self addingClassInstanceVariables: false ].
+ self classInstanceVariableOutliner notNil
+ ifTrue: [ self inSessionProcessDo: [
+ self classInstanceVariableOutliner becomeFocusIfFail: [] ] ]! !
+
! (Delta mirrorFor: #ClassDefinitionOutliner) methodsFor: 'dependencies' !


@@ -33,6 +47,31 @@
! (Delta mirrorFor: #ClassDefinitionOutliner) methodsFor: 'private' !


+addingClassInstanceVariables ^ <Boolean>
+
+ ^addingClassInstanceVariables!
+
+addingClassInstanceVariables: value <Boolean>
+
+ addingClassInstanceVariables := value!
+
+classInstanceVariableOutliner ^ <InstanceVariableOutliner>
+
+ ^classInstanceVariableOutliner!
+
+classInstanceVariableOutliner: outliner <InstanceVariableOutliner>
+
+ classInstanceVariableOutliner := outliner!
+
+insertRemainingDefinition: col <Column[Visual]>
+
+ super insertRemainingDefinition: col.
+ (self mirror classSide instanceVariableString isEmpty not or: [ self
addingClassInstanceVariables ])
+ ifTrue: [ self classInstanceVariableOutliner:
(ClassInstanceVariableOutliner for: self mirror classSide).
+ col add: (self addChild: self classInstanceVariableOutliner)
imbeddedVisual ]
+ ifFalse: [ self classInstanceVariableOutliner: nil ].
+!
+
insertSuperDefinition: col <Column[Visual]>

self mirror superclass notNil
@@ -49,3 +88,11 @@

superclassOutliner := o! !

+! (Delta mirrorFor: #ClassDefinitionOutliner)
methodsFor: 'private-initialization' !
+
+
+initialize
+
+ super initialize.
+ self addingClassInstanceVariables: false! !
+
=======================================
--- /branches/gcc-linux/StrongtalkSource/StackTraceInspector.dlt Tue Jun 9
23:05:09 2009
+++ /branches/gcc-linux/StrongtalkSource/StackTraceInspector.dlt Mon Sep 28
16:51:43 2009
@@ -137,6 +137,10 @@
! (Delta mirrorFor: #StackTraceInspector) methodsFor: 'private' !


+ActivationOutliner
+
+ ^ActivationOutliner!
+
addActivationsTo: col <Column[Visual]>

| stack <Array[Activation]> start <Int> |
@@ -163,7 +167,7 @@

outlinerFor: activation <Activation> open: b <Boolean>

- ^(ActivationOutliner
+ ^(self ActivationOutliner
on: activation
debugger: self)
open: b;
=======================================
--- /branches/gcc-linux/StrongtalkSource/Unclassified.gr Sun Sep 13
14:52:44 2009
+++ /branches/gcc-linux/StrongtalkSource/Unclassified.gr Mon Sep 28
16:51:43 2009
@@ -14,15 +14,18 @@
Delta fileIn: 'CanonicalCharGlyphs.dlt' !
Delta fileIn: 'CanonicalContextTest.dlt' !
Delta fileIn: 'CharacterTest.dlt' !
+Delta fileIn: 'ClassInstanceVariableOutliner.dlt' !
Delta fileIn: 'CommentReader.dlt' !
Delta fileIn: 'CompilerTest.dlt' !
Delta fileIn: 'ComputeHeapSetTest.dlt' !
Delta fileIn: 'ContextNestingTest.dlt' !
Delta fileIn: 'CoreSampler.dlt' !
Delta fileIn: 'Counter.dlt' !
+Delta fileIn: 'Debugger.dlt' !
Delta fileIn: 'DeltaParameterTest.dlt' !
Delta fileIn: 'DeltaScopeTest.dlt' !
Delta fileIn: 'DictionaryTest.dlt' !
+Delta fileIn: 'EditableActivationOutliner.dlt' !
Delta fileIn: 'ElementADDRESS.dlt' !
Delta fileIn: 'ElementH4.dlt' !
Delta fileIn: 'ElementH5.dlt' !
=======================================
--- /branches/gcc-linux/StrongtalkSource/outliner.gr Mon Sep 25 12:14:30
2006
+++ /branches/gcc-linux/StrongtalkSource/outliner.gr Mon Sep 28 16:51:43
2009
@@ -12,18 +12,19 @@
Delta fileIn: 'ClassOrMixinDefinitionOutliner.dlt' !
Delta fileIn: 'ClassDefinitionOutliner.dlt' !
Delta fileIn: 'ClassHierarchyOutliner.dlt' !
-Delta fileIn: 'ClassOutliner.dlt' !
Delta fileIn: 'CodeApp.dlt' !
Delta fileIn: 'DefinitionItemOutliner.dlt' !
+Delta fileIn: 'InstanceVariableOutliner.dlt' !
+Delta fileIn: 'ClassOutliner.dlt' !
Delta fileIn: 'ClassVariableOutliner.dlt' !
Delta fileIn: 'CommentOutliner.dlt' !
+Delta fileIn: 'StackTraceInspector.dlt' !
Delta fileIn: 'GlobalVariableDefinitionOutliner.dlt' !
Delta fileIn: 'MirrorListOutliner.dlt' !
Delta fileIn: 'GlobalVariableListOutliner.dlt' !
Delta fileIn: 'GlobalVariableOutliner.dlt' !
Delta fileIn: 'GroupOutliner.dlt' !
Delta fileIn: 'Inspector.dlt' !
-Delta fileIn: 'InstanceVariableOutliner.dlt' !
Delta fileIn: 'InvocationOutliner.dlt' !
Delta fileIn: 'MessageDeclarationOutliner.dlt' !
Delta fileIn: 'MethodOutliner.dlt' !
@@ -39,7 +40,6 @@
Delta fileIn: 'SideOutliner.dlt' !
Delta fileIn: 'SideWithMethodsOutliner.dlt' !
Delta fileIn: 'SourceCodeManagementOutliner.dlt' !
-Delta fileIn: 'StackTraceInspector.dlt' !
Delta fileIn: 'SuperclassOutliner.dlt' !
Delta fileIn: 'SuperclassTypeOutliner.dlt' !
Delta fileIn: 'SuperprotocolOutliner.dlt' !
=======================================
--- /branches/gcc-linux/StrongtalkSource/world.gr Sun Sep 13 14:52:44 2009
+++ /branches/gcc-linux/StrongtalkSource/world.gr Mon Sep 28 16:51:43 2009
@@ -204,6 +204,10 @@
Delta fileIn: 'ClassOrMixinDefinitionOutliner.dlt' !
Delta fileIn: 'ClassDefinitionOutliner.dlt' !
Delta fileIn: 'ClassHierarchyOutliner.dlt' !
+Delta fileIn: 'CodeApp.dlt' !
+Delta fileIn: 'DefinitionItemOutliner.dlt' !
+Delta fileIn: 'InstanceVariableOutliner.dlt' !
+Delta fileIn: 'ClassInstanceVariableOutliner.dlt' !
Delta fileIn: 'ClassMirror.dlt' !
Delta fileIn: 'Mixin.dlt' !
Delta fileIn: 'ClassMixin.dlt' !
@@ -211,8 +215,6 @@
Delta fileIn: 'DeltaLocator.dlt' !
Delta fileIn: 'VarLocator.dlt' !
Delta fileIn: 'ClassVarLocator.dlt' !
-Delta fileIn: 'CodeApp.dlt' !
-Delta fileIn: 'DefinitionItemOutliner.dlt' !
Delta fileIn: 'ClassVariableOutliner.dlt' !
Delta fileIn: 'TextEditor.dlt' !
Delta fileIn: 'CodeEditor.dlt' !
@@ -249,6 +251,8 @@
Delta fileIn: 'CustomInputStream.dlt' !
Delta fileIn: 'DRAWITEMSTRUCT.dlt' !
Delta fileIn: 'Date.dlt' !
+Delta fileIn: 'StackTraceInspector.dlt' !
+Delta fileIn: 'Debugger.dlt' !
Delta fileIn: 'DefWithMsgSourceHandler.dlt' !
Delta fileIn: 'DefaultButtonWrapper.dlt' !
Delta fileIn: 'DefinitionLocator.dlt' !
@@ -519,6 +523,7 @@
Delta fileIn: 'Dumper.dlt' !
Delta fileIn: 'UnaryConstraint.dlt' !
Delta fileIn: 'EditConstraint.dlt' !
+Delta fileIn: 'EditableActivationOutliner.dlt' !
Delta fileIn: 'HTMLNode.dlt' !
Delta fileIn: 'HTMLElement.dlt' !
Delta fileIn: 'ElementA.dlt' !
@@ -661,7 +666,6 @@
Delta fileIn: 'ObjectIterator.dlt' !
Delta fileIn: 'Inspector.dlt' !
Delta fileIn: 'InstVarLocator.dlt' !
-Delta fileIn: 'InstanceVariableOutliner.dlt' !
Delta fileIn: 'IntMM2Array.dlt' !
Delta fileIn: 'IntMMBenchmark.dlt' !
Delta fileIn: 'IntMM2Benchmark.dlt' !
@@ -849,7 +853,6 @@
Delta fileIn: 'SortedCollection.dlt' !
Delta fileIn: 'SortedCollectionTest.dlt' !
Delta fileIn: 'SourceCodeManagementOutliner.dlt' !
-Delta fileIn: 'StackTraceInspector.dlt' !
Delta fileIn: 'Window.dlt' !
Delta fileIn: 'StandardWindow.dlt' !
Delta fileIn: 'StayConstraint.dlt' !
=======================================
--- /branches/gcc-linux/vm/memory/reflection.cpp Tue Apr 22 18:48:41 2008
+++ /branches/gcc-linux/vm/memory/reflection.cpp Mon Sep 28 16:51:43 2009
@@ -258,7 +258,7 @@
}

void transfer(memOop src, memOop dst) {
- Unimplemented();
+ //Unimplemented();
memConverter::transfer(src, dst);
}
};
@@ -544,7 +544,7 @@
return true;
}

- // Check if we've changed the of instance variables
+ // Check if we've changed the instance variables
if (new_mixin()->number_of_instVars() !=
old_mixin()->number_of_instVars()) {
set_reason_for_schema_change("number of instance variables have
changed");
return true;
@@ -556,6 +556,22 @@
return true;
}
}
+
+ // Check if we've changed the class instance variables
+ mixinOop new_class_mixin = new_mixin()->class_mixin();
+ mixinOop old_class_mixin = old_mixin()->class_mixin();
+ if (new_class_mixin->number_of_instVars() !=
old_class_mixin->number_of_instVars()) {
+ set_reason_for_schema_change("number of class instance variables have
changed");
+ return true;
+ }
+
+ for (int index = new_class_mixin->number_of_instVars(); index > 0;
index--) {
+ if (new_class_mixin->instVar_at(index) !=
old_class_mixin->instVar_at(index)) {
+ set_reason_for_schema_change("class instance variables have
changed");
+ return true;
+ }
+ }
+
return false;
}

@@ -664,6 +680,8 @@
for (index = 0; index < class_changes->length(); index++) {
// Mark old class for schema change

class_changes->at(index)->old_klass()->klass_part()->mark_for_schema_change();
+ // Mark old metaclass for schema change
+
class_changes->at(index)->old_klass()->klass()->klass_part()->mark_for_schema_change();
}
}

=======================================
--- /branches/gcc-linux/vm/oops/klassKlass.cpp Sat Nov 1 12:10:49 2008
+++ /branches/gcc-linux/vm/oops/klassKlass.cpp Mon Sep 28 16:51:43 2009
@@ -39,7 +39,8 @@
}

klassOop klassKlass::create_subclass(mixinOop mixin, Format format) {
- return NULL;
+ klassKlass o;
+ return create_generic_class(as_klassOop(), mixin, o.vtbl_value());
}

int klassKlass::oop_scavenge_contents(oop obj) {

Reply all
Reply to author
Forward
0 new messages