Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.397.mcz
==================== Summary ====================
Name: Tools-bf.397
Author: bf
Time: 22 March 2012, 4:15:47.476 pm
UUID: 01d6b8f6-6a5a-40cb-bafd-c266b07ec665
Ancestors: Tools-bf.396
Preserve dependents when making new inspector. Otherwise, the new inspector becomes unresponsive.
=============== Diff against Tools-bf.396 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: (c basicNew copyFrom: self)]].
- ifFalse: [self becomeForward: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.397.mcz
==================== Summary ====================
Name: Tools-bf.397
Author: bf
Time: 22 March 2012, 4:15:47.476 pm
UUID: 01d6b8f6-6a5a-40cb-bafd-c266b07ec665
Ancestors: Tools-bf.396
Preserve dependents when making new inspector. Otherwise, the new inspector becomes unresponsive.
=============== Diff against Tools-bf.396 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: (c basicNew copyFrom: self)]].
- ifFalse: [self becomeForward: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.397.mcz
==================== Summary ====================
Name: Tools-bf.397
Author: bf
Time: 22 March 2012, 4:15:47.476 pm
UUID: 01d6b8f6-6a5a-40cb-bafd-c266b07ec665
Ancestors: Tools-bf.396
Preserve dependents when making new inspector. Otherwise, the new inspector becomes unresponsive.
=============== Diff against Tools-bf.396 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: (c basicNew copyFrom: self)]].
- ifFalse: [self becomeForward: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.396.mcz
==================== Summary ====================
Name: Tools-bf.396
Author: bf
Time: 21 March 2012, 9:24:17.297 pm
UUID: 6a6ab13c-10bd-47c6-a243-4c6612974337
Ancestors: Tools-bf.395
Use becomeForward: instead of become: as suggested by Nicolas.
=============== Diff against Tools-bf.395 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: c basicNew]].
- ifFalse: [self become: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.396.mcz
==================== Summary ====================
Name: Tools-bf.396
Author: bf
Time: 21 March 2012, 9:24:17.297 pm
UUID: 6a6ab13c-10bd-47c6-a243-4c6612974337
Ancestors: Tools-bf.395
Use becomeForward: instead of become: as suggested by Nicolas.
=============== Diff against Tools-bf.395 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: c basicNew]].
- ifFalse: [self become: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.396.mcz
==================== Summary ====================
Name: Tools-bf.396
Author: bf
Time: 21 March 2012, 9:24:17.297 pm
UUID: 6a6ab13c-10bd-47c6-a243-4c6612974337
Ancestors: Tools-bf.395
Use becomeForward: instead of become: as suggested by Nicolas.
=============== Diff against Tools-bf.395 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
self class ~= c ifTrue: [
self class format = c format
ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self becomeForward: c basicNew]].
- ifFalse: [self become: c basicNew]].
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.395.mcz
==================== Summary ====================
Name: Tools-bf.395
Author: bf
Time: 21 March 2012, 8:37:16.352 pm
UUID: daf7f77d-d62f-4b59-ab6c-ceeed1058c8a
Ancestors: Tools-bf.394
Fix receiverInspector having the wrong class in debugger. To reproduce the problem, evaluate "Dictionary new halt values", step into the "values" method, select "self size" and choose "debug it" from the context menu. This would open a debugger whose receiverInspector was still a ContextInspector, when it should have been a DictionaryInspector.
=============== Diff against Tools-bf.394 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
+ self class ~= c ifTrue: [
+ self class format = c format
+ ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self become: c basicNew]].
- (self class ~= c and: [self class format = c format]) ifTrue: [
- self primitiveChangeClassTo: c basicNew].
-
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.395.mcz
==================== Summary ====================
Name: Tools-bf.395
Author: bf
Time: 21 March 2012, 8:37:16.352 pm
UUID: daf7f77d-d62f-4b59-ab6c-ceeed1058c8a
Ancestors: Tools-bf.394
Fix receiverInspector having the wrong class in debugger. To reproduce the problem, evaluate "Dictionary new halt values", step into the "values" method, select "self size" and choose "debug it" from the context menu. This would open a debugger whose receiverInspector was still a ContextInspector, when it should have been a DictionaryInspector.
=============== Diff against Tools-bf.394 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
+ self class ~= c ifTrue: [
+ self class format = c format
+ ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self become: c basicNew]].
- (self class ~= c and: [self class format = c format]) ifTrue: [
- self primitiveChangeClassTo: c basicNew].
-
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Bert Freudenberg uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-bf.395.mcz
==================== Summary ====================
Name: Tools-bf.395
Author: bf
Time: 21 March 2012, 8:37:16.352 pm
UUID: daf7f77d-d62f-4b59-ab6c-ceeed1058c8a
Ancestors: Tools-bf.394
Fix receiverInspector having the wrong class in debugger. To reproduce the problem, evaluate "Dictionary new halt values", step into the "values" method, select "self size" and choose "debug it" from the context menu. This would open a debugger whose receiverInspector was still a ContextInspector, when it should have been a DictionaryInspector.
=============== Diff against Tools-bf.394 ===============
Item was changed:
----- Method: Inspector>>inspect: (in category 'initialize-release') -----
inspect: anObject
"Initialize the receiver so that it is inspecting anObject. There is no current selection.
Normally the receiver will be of the correct class (as defined by anObject inspectorClass),
because it will have just been created by sedning inspect to anObject. However, the
debugger uses two embedded inspectors, which are re-targetted on the current receiver
each time the stack frame changes. The left-hand inspector in the debugger has its
class changed by the code here. Care should be taken if this method is overridden to
ensure that the overriding code calls 'super inspect: anObject', or otherwise ensures that
the class of these embedded inspectors are changed back."
| c |
c := anObject inspectorClass.
+ self class ~= c ifTrue: [
+ self class format = c format
+ ifTrue: [self primitiveChangeClassTo: c basicNew]
+ ifFalse: [self become: c basicNew]].
- (self class ~= c and: [self class format = c format]) ifTrue: [
- self primitiveChangeClassTo: c basicNew].
-
"Set 'object' before sending the initialize message, because some implementations
of initialize (e.g., in DictionaryInspector) require 'object' to be non-nil."
object := anObject.
self initialize!
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.472.mcz
==================== Summary ====================
Name: System-eem.472
Author: eem
Time: 20 March 2012, 11:04:56.857 am
UUID: 565bbe60-904f-4288-a5c5-90843e33c961
Ancestors: System-eem.471
voidCogVMState primitive.
=============== Diff against System-eem.471 ===============
Item was added:
+ ----- Method: SmalltalkImage>>voidCogVMState (in category 'miscellaneous') -----
+ voidCogVMState
+ "Void any internal caches the VM maintains other than the method lookup caches.
+ These comprise
+ - the stack zone, where method activations are stored, and
+ - the machine code zone, where the machine code form of CompiledMethods is held."
+ <primitive: 214>
+ ^self primitiveFailed
+
+ "Time millisecondsToRun: [Smalltalk voidCogVMState]"
+ "(1 to: 10) collect: [:ign| Time millisecondsToRun: [Smalltalk voidCogVMState]]"!