equal
deleted
inserted
replaced
67 |
67 |
68 "Created: / 13-11-2014 / 12:13:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
68 "Created: / 13-11-2014 / 12:13:30 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
69 ! |
69 ! |
70 |
70 |
71 initialize |
71 initialize |
72 InvalidClassFormatSignal := Signal new mayProceed:true. |
72 self initializeSignals. |
73 InvalidClassFormatSignal notifierString:'class load failure'. |
|
74 InvalidClassFormatSignal nameClass:self message:#invalidClassFormatSignal. |
|
75 |
|
76 NoClassPathDefinedSignal := Signal new mayProceed:true. |
|
77 NoClassPathDefinedSignal notifierString:'no class path defined'. |
|
78 NoClassPathDefinedSignal nameClass:self message:#noClassPathDefinedSignal. |
|
79 |
73 |
80 Verbose := false. |
74 Verbose := false. |
81 Silent := true. |
75 Silent := true. |
82 AbsolutelySilent := false. |
76 AbsolutelySilent := false. |
83 |
77 |
84 "/ Verbose := true. |
78 "/ Verbose := true. |
85 "/ Silent := false. |
79 "/ Silent := false. |
86 |
80 |
87 "/LazyClassLoading := false. |
|
88 |
|
89 LazyClassLoading := true. |
81 LazyClassLoading := true. |
90 ClassLoaderQuerySignal := QuerySignal new. |
82 "/ LazyClassLoading := false. |
91 ClassLoaderQuerySignal defaultAnswer:[ JavaVM systemClassLoader ]. |
83 |
92 self initializeArchiveCache. |
84 self initializeArchiveCache. |
93 JavaArchiveCacheLock := RecursionLock new. |
85 JavaArchiveCacheLock := RecursionLock new. |
94 LastJavaArchiveLock := RecursionLock new. |
86 LastJavaArchiveLock := RecursionLock new. |
95 AnnotationsVerbose := false. |
87 AnnotationsVerbose := false. |
96 MaxContextSize := 0. |
88 MaxContextSize := 0. |
124 "Constant pool strings are interned to save memory |
116 "Constant pool strings are interned to save memory |
125 and kept in InternedStrings variable" |
117 and kept in InternedStrings variable" |
126 InternedStrings := Set new |
118 InternedStrings := Set new |
127 |
119 |
128 "Modified (comment): / 13-11-2014 / 12:12:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
120 "Modified (comment): / 13-11-2014 / 12:12:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
121 ! |
|
122 |
|
123 initializeSignals |
|
124 InvalidClassFormatSignal := Signal new mayProceed:true. |
|
125 InvalidClassFormatSignal notifierString:'class load failure'. |
|
126 InvalidClassFormatSignal nameClass:self message:#invalidClassFormatSignal. |
|
127 |
|
128 NoClassPathDefinedSignal := Signal new mayProceed:true. |
|
129 NoClassPathDefinedSignal notifierString:'no class path defined'. |
|
130 NoClassPathDefinedSignal nameClass:self message:#noClassPathDefinedSignal. |
|
131 |
|
132 ClassLoaderQuerySignal := QuerySignal new. |
|
133 ClassLoaderQuerySignal defaultAnswer:[ JavaVM systemClassLoader ]. |
|
134 |
|
135 |
|
136 "Modified: / 27-01-1998 / 17:54:23 / cg" |
129 ! ! |
137 ! ! |
130 |
138 |
131 !JavaClassReader class methodsFor:'Signal constants'! |
139 !JavaClassReader class methodsFor:'Signal constants'! |
132 |
140 |
133 classLoaderQuerySignal |
141 classLoaderQuerySignal |
270 |
278 |
271 class isNil ifTrue:[ |
279 class isNil ifTrue:[ |
272 JavaVM booted ifFalse:[ |
280 JavaVM booted ifFalse:[ |
273 ^nil |
281 ^nil |
274 ]. |
282 ]. |
275 JavaClassReader classLoaderQuerySignal answer: JavaVM systemClassLoader do:[ |
283 ClassLoaderQuerySignal answer: JavaVM systemClassLoader do:[ |
276 class := self |
284 class := self |
277 readClass: className ignoring: classesBeingLoadedOrNil |
285 readClass: className ignoring: classesBeingLoadedOrNil |
278 classPath: Java classPath. |
286 classPath: Java classPath. |
279 ]. |
287 ]. |
280 ]. |
288 ]. |
342 |
350 |
343 readStream: stream ignoring: classesBeingLoaded |
351 readStream: stream ignoring: classesBeingLoaded |
344 "reads a class from aStream and returns it. |
352 "reads a class from aStream and returns it. |
345 The JavaClass is not installed as global" |
353 The JavaClass is not installed as global" |
346 |
354 |
347 ^self readStream: stream loader: self classLoaderQuerySignal query ignoring: classesBeingLoaded |
355 ^self readStream: stream loader: ClassLoaderQuerySignal query ignoring: classesBeingLoaded |
348 |
356 |
349 "Modified: / 30-03-1998 / 18:14:40 / cg" |
357 "Modified: / 30-03-1998 / 18:14:40 / cg" |
350 "Modified: / 09-05-2011 / 23:15:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>" |
358 "Modified: / 09-05-2011 / 23:15:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>" |
351 "Modified: / 02-05-2013 / 09:51:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
359 "Modified: / 02-05-2013 / 09:51:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
352 ! |
360 ! |
686 classBeingLoaded setName: thisClassName asSymbol. |
694 classBeingLoaded setName: thisClassName asSymbol. |
687 ] ifFalse: [ |
695 ] ifFalse: [ |
688 "/ a java class |
696 "/ a java class |
689 Class withoutUpdatingChangesDo:[ |
697 Class withoutUpdatingChangesDo:[ |
690 classBeingLoaded := JavaClass binaryName: thisClassName numStatic: nStatic. |
698 classBeingLoaded := JavaClass binaryName: thisClassName numStatic: nStatic. |
691 classBeingLoaded classLoader: self class classLoaderQuerySignal query. |
699 classBeingLoaded classLoader: ClassLoaderQuerySignal query. |
692 fields := fields select: [:f | f isStatic not ]. |
700 fields := fields select: [:f | f isStatic not ]. |
693 JavaClass setInstanceVariableStringFromFields: staticFields |
701 JavaClass setInstanceVariableStringFromFields: staticFields |
694 in: classBeingLoaded class. |
702 in: classBeingLoaded class. |
695 classBeingLoaded setStaticFields: staticFields. |
703 classBeingLoaded setStaticFields: staticFields. |
696 classBeingLoaded setAccessFlags: access_flags. |
704 classBeingLoaded setAccessFlags: access_flags. |
757 readStream:aStream ignoring:classesBeingLoaded |
765 readStream:aStream ignoring:classesBeingLoaded |
758 <resource: #obsolete> |
766 <resource: #obsolete> |
759 "reads a class from aStream and returns it. |
767 "reads a class from aStream and returns it. |
760 The JavaClass is not installed as global" |
768 The JavaClass is not installed as global" |
761 |
769 |
762 ^self readStream:aStream loader: self class classLoaderQuerySignal query ignoring:classesBeingLoaded |
770 ^self readStream:aStream loader: ClassLoaderQuerySignal query ignoring:classesBeingLoaded |
763 |
771 |
764 |
772 |
765 " |
773 " |
766 JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class' |
774 JavaClassReader readFile:'/phys/ibm3/hotjava/classes/browser/AddButton.class' |
767 " |
775 " |