class: Structure
authorClaus Gittinger <cg@exept.de>
Fri, 08 May 2015 00:29:14 +0200
changeset 3627 4638af476fae
parent 3626 690681bf1976
child 3628 febf865a3ca9
class: Structure added: #initializeOneInstance removed: #initialize changed: #newWith:values: #primAddSelector:withMethod: lazy initialization
Structure.st
--- a/Structure.st	Wed Apr 22 20:03:50 2015 +0200
+++ b/Structure.st	Fri May 08 00:29:14 2015 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "
  COPYRIGHT (c) 1996 by Claus Gittinger
               All Rights Reserved
@@ -122,7 +124,7 @@
 
 !Structure class methodsFor:'initialization'!
 
-initialize
+initializeOneInstance
     OneInstance isNil ifTrue:[
         "/ check if the first few instvars correspond to Behavior's definition:
 
@@ -210,6 +212,10 @@
 
     |arr sels mthds nInsts behviorsInstSize|
 
+    OneInstance isNil ifTrue:[
+        self initializeOneInstance
+    ].
+
     nInsts := names size.
 
     sels := names collect:[:nm | nm asSymbol].
@@ -362,7 +368,7 @@
 
     val := super primAddSelector:newSelector withMethod:newMethod.
     OneInstance := nil.
-    self initialize.
+    "/ self initializeOneInstance.
     ^ val
 ! !
 
@@ -1437,12 +1443,10 @@
 !Structure class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.27 2015-04-22 18:03:50 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.28 2015-05-07 22:29:14 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.27 2015-04-22 18:03:50 stefan Exp $'
+    ^ '$Header: /cvs/stx/stx/libcomp/Structure.st,v 1.28 2015-05-07 22:29:14 cg Exp $'
 ! !
 
-
-Structure initialize!