author | Claus Gittinger <cg@exept.de> |
Fri, 01 Nov 2019 13:44:29 +0100 | |
branch | cvs_MAIN |
changeset 3973 | ee0b2d717637 |
parent 3412 | df11bb428463 |
child 3508 | 622620308fee |
permissions | -rw-r--r-- |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
" |
3324
a58245c0e83a
Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3303
diff
changeset
|
2 |
COPYRIGHT (c) 1996-2015 by Claus Gittinger |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
New code and modifications done at SWING Research Group [1]: |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
|
3324
a58245c0e83a
Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3303
diff
changeset
|
6 |
COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
SWING Research Group, Czech Technical University in Prague |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
This software is furnished under a license and may be used |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
only in accordance with the terms of that license and with the |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
inclusion of the above copyright notice. This software may not |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
be provided or otherwise made available to, or used by, any |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
other person. No title to or ownership of the software is |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
hereby transferred. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
[1] Code written at SWING Research Group contains a signature |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
of one of the above copright owners. For exact set of such code, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
see the differences between this version and version stx:libjava |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
as of 1.9.2010 |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
"{ Package: 'stx:libjava' }" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
|
3330
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
23 |
"{ NameSpace: Smalltalk }" |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
24 |
|
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
Object subclass:#JavaClassReloader |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
instanceVariableNames:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
classVariableNames:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
poolDictionaries:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
category:'Languages-Java-Support' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
|
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
32 |
Notification subclass:#RecompileRequest |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
33 |
instanceVariableNames:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
34 |
classVariableNames:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
35 |
poolDictionaries:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
36 |
privateIn:JavaClassReloader |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
37 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
38 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
39 |
Notification subclass:#ReloadRequest |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
40 |
instanceVariableNames:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
41 |
classVariableNames:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
42 |
poolDictionaries:'' |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
43 |
privateIn:JavaClassReloader |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
44 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
45 |
|
2830
853c11fe1ce8
wire in requestRecompile sends
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2822
diff
changeset
|
46 |
JavaClassReloader subclass:#SingleClassReloader |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
instanceVariableNames:'oldClass newClass mustMigrateInstances mustMigrateClass |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
instFieldMapping staticFieldMapping' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
classVariableNames:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
poolDictionaries:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
privateIn:JavaClassReloader |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
Object subclass:#FieldMapping |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
instanceVariableNames:'old new' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
classVariableNames:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
poolDictionaries:'' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
privateIn:JavaClassReloader::SingleClassReloader |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
!JavaClassReloader class methodsFor:'documentation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
copyright |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
" |
3324
a58245c0e83a
Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3303
diff
changeset
|
65 |
COPYRIGHT (c) 1996-2015 by Claus Gittinger |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
New code and modifications done at SWING Research Group [1]: |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
|
3324
a58245c0e83a
Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3303
diff
changeset
|
69 |
COPYRIGHT (c) 2010-2015 by Jan Vrany, Jan Kurs and Marcel Hlopko |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
SWING Research Group, Czech Technical University in Prague |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
This software is furnished under a license and may be used |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
only in accordance with the terms of that license and with the |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
inclusion of the above copyright notice. This software may not |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
be provided or otherwise made available to, or used by, any |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
other person. No title to or ownership of the software is |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
hereby transferred. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
[1] Code written at SWING Research Group contains a signature |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
of one of the above copright owners. For exact set of such code, |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
see the differences between this version and version stx:libjava |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
as of 1.9.2010 |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
documentation |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
A main workhorse for reloading (updating) java classes |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
in running system. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
[author:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
[instance variables:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
[class variables:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
99 |
[see also:] |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
100 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
101 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
102 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
103 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
104 |
!JavaClassReloader class methodsFor:'reloading'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
105 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
106 |
reload: oldClass with: newClass |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
107 |
"Update old class to match the definition of newClass" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
^ self new reload: oldClass with: newClass |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
"Created: / 20-02-2012 / 23:29:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
111 |
"Modified (comment): / 14-09-2013 / 15:51:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
112 |
! |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
113 |
|
3330
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
114 |
unload: oldClass |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
115 |
"Remove oldClass from the system" |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
116 |
^ self new unload: oldClass |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
117 |
|
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
118 |
"Created: / 14-09-2013 / 15:52:14 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
119 |
! |
b14c58b2876c
Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3324
diff
changeset
|
120 |
|
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
121 |
unload: oldClass ignoring: ignoredClasses |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
122 |
"Remove oldClass from the system" |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
123 |
^ self new unload: oldClass ignoring: ignoredClasses |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
124 |
|
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
125 |
"Created: / 10-10-2014 / 12:13:14 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
|
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
128 |
!JavaClassReloader class methodsFor:'reloading-requests'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
129 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
130 |
requestRecompile: aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
131 |
RecompileRequest newException |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
132 |
parameter: aJavaClass; |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
133 |
raiseRequest |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
134 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
135 |
"Created: / 08-10-2013 / 19:26:20 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
136 |
"Modified: / 13-10-2013 / 20:40:09 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
137 |
"Modified: / 15-10-2013 / 01:19:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
138 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
139 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
140 |
requestReload: aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
141 |
ReloadRequest newException |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
142 |
parameter: aJavaClass; |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
143 |
raiseRequest |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
144 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
145 |
"Created: / 08-10-2013 / 19:26:12 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
146 |
"Modified: / 15-10-2013 / 01:19:55 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
147 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
148 |
|
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
!JavaClassReloader methodsFor:'reloading'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
reload: oldClass with: newClass |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
|
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
153 |
| newClassToInstall recompileRequests reloadRequests | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
154 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
155 |
reloadRequests := Set new. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
156 |
recompileRequests := Set new. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
157 |
[ |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
158 |
newClassToInstall := SingleClassReloader new reload: oldClass with: newClass. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
159 |
"Also, reload all subclasses - fields may have changed!!" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
160 |
newClassToInstall ~~ oldClass ifTrue: [ |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
161 |
oldClass mergeVersionsWith: newClassToInstall. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
162 |
oldClass subclassesDo:[:oldSubclass| |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
163 |
| newSubclass | |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
164 |
|
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
165 |
newSubclass := oldSubclass copy. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
166 |
newSubclass setSuperclass: newClassToInstall. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
167 |
newSubclass instSize: (newClassToInstall instSize + oldSubclass fields size). |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
168 |
self requestReload: newSubclass. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
169 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
170 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
171 |
] on: RecompileRequest do:[:recompileRequest | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
172 |
"/ Catch all recompile requests |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
173 |
(recompileRequests contains:[:each | each parameter == recompileRequest parameter]) ifFalse:[ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
174 |
recompileRequests add: recompileRequest |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
175 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
176 |
recompileRequest proceed. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
177 |
] on: ReloadRequest do:[:reloadRequest | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
178 |
"/ Catch all reload requests |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
179 |
(reloadRequests contains:[:each | each parameter == reloadRequest parameter]) ifFalse:[ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
180 |
reloadRequests add: reloadRequest |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
181 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
182 |
reloadRequest proceed. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
183 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
184 |
"/ Remove all reload request for classes for which there have been |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
185 |
"/ recompile request as recompile implies reload... |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
186 |
reloadRequests := reloadRequests reject:[:each | recompileRequests contains:[:eachRecompile | each parameter == eachRecompile parameter]]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
187 |
"/ Now execute all deferred recompile/reload requests. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
188 |
recompileRequests do:[:each | each recompile ]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
189 |
reloadRequests do:[:each | each reload ]. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
^newClassToInstall. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
"Created: / 04-04-2012 / 01:32:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2830
853c11fe1ce8
wire in requestRecompile sends
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2822
diff
changeset
|
194 |
"Modified: / 13-10-2013 / 20:52:58 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
195 |
"Modified: / 15-10-2013 / 01:16:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
196 |
! |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
197 |
|
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
198 |
unload: oldClass ignoring: ignoredClasses |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
199 |
|
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
200 |
ignoredClasses add: oldClass. |
3217
261bad2a9657
Fixes for class unloadfing: unload inner classes first.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3173
diff
changeset
|
201 |
oldClass subclassesDo:[:subclass | |
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
202 |
(ignoredClasses includes: subclass) ifFalse:[ |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
203 |
JavaVM registry unregisterClass: subclass ignoring: ignoredClasses |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
204 |
]. |
3217
261bad2a9657
Fixes for class unloadfing: unload inner classes first.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3173
diff
changeset
|
205 |
]. |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
206 |
oldClass innerClassesIgnoreUnloaded do:[:innerclass | |
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
207 |
(ignoredClasses includes: innerclass) ifFalse:[ |
3303
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
208 |
"/ nil out EnclosingMethod so subsequent |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
209 |
"/ calls to owningClasse would return nil |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
210 |
innerclass attributes removeKey: #EnclosingMethod ifAbsent:[]. |
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
211 |
JavaVM registry unregisterClass: innerclass ignoring: ignoredClasses |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
212 |
] |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
213 |
]. |
3303
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
214 |
oldClass anonymousClassesIgnoreUnloaded do:[:anonymousClass | |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
215 |
(ignoredClasses includes: anonymousClass) ifFalse:[ |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
216 |
"/ nil out EnclosingMethod so subsequent |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
217 |
"/ calls class to owningClasse would return nil |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
218 |
anonymousClass attributes removeKey: #EnclosingMethod ifAbsent:[]. |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
219 |
JavaVM registry unregisterClass: anonymousClass ignoring: ignoredClasses |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
220 |
] |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
221 |
]. |
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
222 |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
223 |
JavaVM registry allClassesDo:[:cls| |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
224 |
"/ JV: Q: Should we remove all users of the interface? Let's do it, but not |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
225 |
"/ sure if that's necessary/desirable |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
226 |
| ifaces | |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
227 |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
228 |
ifaces := cls interfaces. |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
229 |
ifaces notNil ifTrue:[ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
230 |
(ifaces anySatisfy:[:iface | iface == oldClass]) ifTrue:[ |
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
231 |
(ignoredClasses includes: cls) ifFalse:[ |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
232 |
JavaVM registry unregisterClass: cls ignoring: ignoredClasses |
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
233 |
]. |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
234 |
]. |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
235 |
]. |
2857
10c0fcf2d304
Fix JavaClassReloader for new naming (#name -> #binaryName)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2830
diff
changeset
|
236 |
cls constantPool invalidateForClass: oldClass binaryName |
2730
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
237 |
] |
272689c14005
Fixed removing of Java classes (issue #40)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2651
diff
changeset
|
238 |
|
3244
0a8b9f03ffa5
Fixed class reloader in cases a top-level class has both, nested and anonymous classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3236
diff
changeset
|
239 |
"Created: / 10-10-2014 / 12:14:10 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3303
af659e602072
Fixes for class unloading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3290
diff
changeset
|
240 |
"Modified (format): / 15-12-2014 / 22:14:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
241 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
242 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
243 |
!JavaClassReloader methodsFor:'reloading-requests'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
244 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
245 |
requestRecompile:aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
246 |
^ self class requestRecompile:aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
247 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
248 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
249 |
requestReload:aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
250 |
^ self class requestReload:aJavaClass |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
251 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
252 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
253 |
!JavaClassReloader::RecompileRequest methodsFor:'default actions'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
254 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
255 |
defaultAction |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
256 |
"the default action is to return the default value. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
257 |
Subclasses may redefine this" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
258 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
259 |
^ self recompile |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
260 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
261 |
"Created: / 15-10-2013 / 00:31:32 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
262 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
263 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
264 |
recompile |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
265 |
JavaCompiler recompile: self parameter |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
266 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
267 |
"Created: / 15-10-2013 / 00:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
268 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
269 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
270 |
!JavaClassReloader::ReloadRequest methodsFor:'default actions'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
271 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
272 |
defaultAction |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
273 |
"the default action is to return the default value. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
274 |
Subclasses may redefine this" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
275 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
276 |
^ self reload |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
277 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
278 |
"Created: / 15-10-2013 / 00:37:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
279 |
! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
280 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
281 |
reload |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
282 |
JavaVM registry registerClass: self parameter. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
283 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
284 |
"Created: / 15-10-2013 / 00:49:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
285 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
286 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
287 |
!JavaClassReloader::SingleClassReloader methodsFor:'private'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
288 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
289 |
invalidate |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
290 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
291 |
| anyInvalidated | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
292 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
293 |
anyInvalidated := false. |
3067
4bbacafb9592
Renamed JavaClassRegistry>>classesDo: to allClassesDo:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2900
diff
changeset
|
294 |
JavaVM registry allClassesDo:[:class| |
2758
06599146279d
fix JavaClassReloader>>invalidate
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2742
diff
changeset
|
295 |
anyInvalidated := (self invalidateClass: class) | anyInvalidated. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
296 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
297 |
anyInvalidated ifTrue:[ObjectMemory flushCaches]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
298 |
|
2868
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
299 |
" |
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
300 |
Eclipse Compiler for Java is too smart - when a field is not accessible, it doesn't generate |
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
301 |
GETFIELD instructions, it generates ATHROW which throws stx.libjava.tools.compiler.CompileError |
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
302 |
(originally, it throws java.lang.Error, but we hacked it - see CompilerError static initializer. |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
303 |
|
2868
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
304 |
Here we recompile all classes with CompileError - just to be safe. |
90724c4fa7f8
Fix to recompile erroneous classes upon reload.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2865
diff
changeset
|
305 |
" |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
306 |
"/JavaCompiler recompileErroneousClassesReferringTo: newClass ignoring: oldClass. |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
307 |
|
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
308 |
"Created: / 21-02-2012 / 09:47:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
309 |
"Modified: / 02-10-2013 / 23:27:59 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
3067
4bbacafb9592
Renamed JavaClassRegistry>>classesDo: to allClassesDo:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2900
diff
changeset
|
310 |
"Modified: / 09-04-2014 / 18:43:43 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
311 |
! |
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
312 |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
313 |
invalidateClass: javaClass |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
314 |
^ javaClass ~~ oldClass and:[javaClass constantPool invalidateForClass: oldClass binaryName] |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
315 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
316 |
"Created: / 21-02-2012 / 09:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2830
853c11fe1ce8
wire in requestRecompile sends
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2822
diff
changeset
|
317 |
"Modified (format): / 13-10-2013 / 20:43:57 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
2872
3ed529d88338
Recompilation fixed (avoid endless recursion)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2868
diff
changeset
|
318 |
"Modified: / 17-10-2013 / 02:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
319 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
320 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
321 |
migrate |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
322 |
"Possibly migrate instances and class. Return the class that should |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
323 |
be installed in registry once reloader finishes his job. |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
324 |
|
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
325 |
At this point, all references are already invalidated (see #reload) |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
326 |
" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
327 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
328 |
mustMigrateInstances ifTrue:[ |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
329 |
self migrateInstances. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
330 |
mustMigrateClass ifTrue:[ |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
331 |
self migrateClass |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
332 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
333 |
^newClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
334 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
335 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
336 |
mustMigrateClass ifTrue:[ |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
337 |
self migrateClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
338 |
^newClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
339 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
340 |
self updateOldClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
341 |
^oldClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
342 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
343 |
"Created: / 20-02-2012 / 23:40:03 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
344 |
"Modified (comment): / 16-12-2012 / 17:39:26 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
345 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
346 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
347 |
migrateClass |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
348 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
349 |
"/self error:'Not yet supported' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
350 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
351 |
"Created: / 21-02-2012 / 11:04:48 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
352 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
353 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
354 |
migrateInstance: object |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
355 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
356 |
self assert: object class == oldClass. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
357 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
358 |
"Created: / 30-03-2012 / 19:42:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
359 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
360 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
361 |
migrateInstances |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
362 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
363 |
oldClass allInstancesDo:[:i| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
364 |
self migrateInstance:i. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
365 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
366 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
367 |
"Created: / 21-02-2012 / 11:04:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
368 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
369 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
370 |
prepare |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
371 |
"Analyze and prepare data for reloading" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
372 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
373 |
self prepareInstFieldMapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
374 |
self prepareStaticFieldMapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
375 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
376 |
"Created: / 20-02-2012 / 23:40:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
377 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
378 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
379 |
prepareFieldMap: fields |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
380 |
| map | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
381 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
382 |
map := Dictionary new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
383 |
fields do:[ :field | map at: field name put: field ]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
384 |
^map |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
385 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
386 |
"Created: / 21-02-2012 / 09:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
387 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
388 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
389 |
prepareInstFieldMapping |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
390 |
"Scans both old and new class inst fields and create a mapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
391 |
Sets mustMigrateInstances" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
392 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
393 |
| newFields | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
394 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
395 |
mustMigrateInstances := false. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
396 |
instFieldMapping := Set new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
397 |
newFields := self prepareFieldMap: newClass allFields. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
398 |
oldClass fields do:[:old| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
399 |
| new mapping | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
400 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
401 |
new := newFields at: old name ifAbsent:[nil]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
402 |
new notNil ifTrue:[ newFields removeKey: old name ]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
403 |
mapping := FieldMapping old: old new: new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
404 |
mustMigrateInstances := mustMigrateInstances or:[mapping mustMigrate]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
405 |
instFieldMapping add: mapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
406 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
407 |
"Remaining fields are new, i.e., does not exist in |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
408 |
old class. Add them to the mapping" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
409 |
newFields do:[:new| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
410 |
instFieldMapping add: (FieldMapping old: nil new: new). |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
411 |
mustMigrateInstances := true |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
412 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
413 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
414 |
"Created: / 21-02-2012 / 09:32:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
415 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
416 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
417 |
prepareStaticFieldMapping |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
418 |
"Scans both old and new class inst fields and create a mapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
419 |
Sets mustMigrateInstances" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
420 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
421 |
| newFields | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
422 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
423 |
mustMigrateClass := false. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
424 |
staticFieldMapping := Set new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
425 |
newFields := self prepareFieldMap: newClass allStaticFields. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
426 |
oldClass staticFields do:[:old| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
427 |
| new mapping | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
428 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
429 |
new := newFields at: old name ifAbsent:[nil]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
430 |
new notNil ifTrue:[ newFields removeKey: old name ]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
431 |
mapping := FieldMapping old: old new: new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
432 |
mustMigrateClass:= mustMigrateClass or:[mapping mustMigrate]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
433 |
staticFieldMapping add: mapping. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
434 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
435 |
"Remaining fields are new, i.e., does not exist in |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
436 |
old class. Add them to the mapping" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
437 |
newFields do:[:new| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
438 |
staticFieldMapping add: (FieldMapping old: nil new: new). |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
439 |
mustMigrateClass:= true |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
440 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
441 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
442 |
"Created: / 21-02-2012 / 09:45:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2892 | 443 |
! |
444 |
||
445 |
updateOldClass |
|
446 |
"At this point we know that both classes have same layout. So we can |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
447 |
simply copy methods and other info from new class to old one. |
2892 | 448 |
References must be flushed anyway!! We need to copy constant pool over, |
449 |
indices may have changed. And we will copy fields as well, types may |
|
450 |
have been generalized. |
|
451 |
||
452 |
Also, here we also track method added and removed and if either |
|
453 |
one is an overload, request recompile of all dependent classes. |
|
454 |
" |
|
455 |
||
456 |
| oldMethods oldMethodsRemoved newMethods newMethodsAdded | |
|
457 |
||
458 |
oldMethods := oldClass methodDictionary. |
|
459 |
oldMethodsRemoved := oldMethods values asSet. |
|
460 |
newMethods := newClass methodDictionary copy. |
|
461 |
newMethodsAdded := Set new. |
|
462 |
newMethods keysDo:[:selector| |
|
463 |
| oldM newM | |
|
464 |
||
465 |
oldM := oldMethods at: selector ifAbsent:[nil]. |
|
466 |
newM := newMethods at: selector. |
|
467 |
oldM notNil ifTrue:[ |
|
468 |
oldMethodsRemoved remove: oldM. |
|
3236
c8b42e8c2d6c
Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3217
diff
changeset
|
469 |
oldM := oldM originalMethodIfWrapped. |
2892 | 470 |
(oldM canBeUpdatedFrom: newM) ifTrue:[ |
2900
894e894aa511
Fix in JavaClassReloader>>updateOldClass: update old method only if class of the method is the same.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2899
diff
changeset
|
471 |
oldM class == newM class ifTrue:[ |
894e894aa511
Fix in JavaClassReloader>>updateOldClass: update old method only if class of the method is the same.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2899
diff
changeset
|
472 |
oldM updateFrom: newM. |
894e894aa511
Fix in JavaClassReloader>>updateOldClass: update old method only if class of the method is the same.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2899
diff
changeset
|
473 |
]. |
2892 | 474 |
newMethods at: selector put: oldM. |
475 |
] |
|
476 |
] ifFalse:[ |
|
477 |
newMethodsAdded add: newM. |
|
478 |
]. |
|
479 |
]. |
|
480 |
||
481 |
newMethods do:[:m|m setJavaClass: oldClass]. |
|
482 |
oldClass setAttributes: newClass attributes. |
|
483 |
oldClass annotations: newClass annotations. |
|
484 |
oldClass setMethodDictionary: newMethods. |
|
485 |
oldClass setConstantPool: newClass constantPool. |
|
486 |
oldClass setSource: newClass sourceString. |
|
487 |
oldClass setFields: newClass fields. |
|
488 |
oldClass setStaticFields: newClass staticFields. |
|
489 |
"Flush all proxies, they mau refer to old static methods" |
|
490 |
oldClass class setMethodDictionary: MethodDictionary new. |
|
491 |
||
492 |
||
493 |
oldMethodsRemoved do:[:oldMRemoved | |
|
494 |
oldMRemoved isJavaMethod ifTrue:[ |
|
495 |
self requestRecompileSendersOf: oldMRemoved. |
|
496 |
]. |
|
497 |
]. |
|
498 |
newMethodsAdded do:[:newMAdded | |
|
499 |
| overloads name | |
|
500 |
||
501 |
newMAdded isStatic ifFalse:[ |
|
502 |
overloads := Set new. |
|
503 |
name := newMAdded name. |
|
504 |
self withAllSuperclassesAndInterfacesOf: newMAdded javaClass do:[:cls| |
|
505 |
cls methodDictionary keysAndValuesDo:[:selector :method | |
|
506 |
(method ~~ newMAdded and:[method isStatic not and:[method name = name]]) ifTrue:[ |
|
507 |
overloads add: method. |
|
508 |
]. |
|
509 |
]. |
|
510 |
]. |
|
511 |
overloads do:[:overloadedM | |
|
512 |
self requestRecompileSendersOf: overloadedM. |
|
513 |
]. |
|
514 |
] |
|
515 |
]. |
|
516 |
||
517 |
"Created: / 16-12-2012 / 17:36:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
|
518 |
"Modified: / 12-10-2013 / 19:20:03 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
|
3236
c8b42e8c2d6c
Fix in reloading of a method with method-level breakpoint.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3217
diff
changeset
|
519 |
"Modified: / 17-08-2014 / 08:37:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
520 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
521 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
522 |
!JavaClassReloader::SingleClassReloader methodsFor:'private-helpers'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
523 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
524 |
withAllSuperclassesAndInterfacesOf: aJavaClass do: aBlock |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
525 |
| queue seen | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
526 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
527 |
queue := OrderedCollection with: aJavaClass. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
528 |
seen := Set new. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
529 |
[ queue isEmpty ] whileFalse:[ |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
530 |
| cls | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
531 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
532 |
cls := queue removeFirst. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
533 |
(seen includes: cls) ifFalse:[ |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
534 |
seen add: cls. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
535 |
aBlock value: cls. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
536 |
queue addAll: cls interfaces. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
537 |
cls superclass ~~ JavaObject ifTrue:[ |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
538 |
queue add: cls superclass. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
539 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
540 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
541 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
542 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
543 |
"Created: / 15-10-2013 / 01:55:36 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
544 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
545 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
546 |
!JavaClassReloader::SingleClassReloader methodsFor:'reloading'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
547 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
548 |
reload |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
549 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
550 |
self prepare. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
551 |
self invalidate. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
552 |
^self migrate. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
553 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
554 |
"Created: / 20-02-2012 / 23:29:37 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
555 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
556 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
557 |
reload: oldClassA with: newClassA |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
558 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
559 |
oldClass := oldClassA. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
560 |
newClass := newClassA. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
561 |
^ self reload. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
562 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
563 |
"Created: / 20-02-2012 / 23:29:37 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
564 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
565 |
|
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
566 |
!JavaClassReloader::SingleClassReloader methodsFor:'reloading-requests'! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
567 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
568 |
requestRecompileSendersOf: givenMethod |
3067
4bbacafb9592
Renamed JavaClassRegistry>>classesDo: to allClassesDo:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2900
diff
changeset
|
569 |
JavaVM registry allClassesDo:[:cls| |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
570 |
| recompile | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
571 |
recompile := cls constantPool contains:[:entry | |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
572 |
entry isJavaRef |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
573 |
and:[ entry isJavaMethodRef |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
574 |
and:[entry classRef name = givenMethod javaClass binaryName |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
575 |
and:[(entry nameAndType name , entry nameAndType descriptor) = givenMethod selector]]]]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
576 |
recompile ifTrue:[ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
577 |
self requestRecompile: cls. |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
578 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
579 |
]. |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
580 |
|
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
581 |
"Created: / 15-10-2013 / 01:52:57 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3067
4bbacafb9592
Renamed JavaClassRegistry>>classesDo: to allClassesDo:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2900
diff
changeset
|
582 |
"Modified: / 09-04-2014 / 18:43:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
583 |
! ! |
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
584 |
|
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
585 |
!JavaClassReloader::SingleClassReloader::FieldMapping class methodsFor:'instance creation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
586 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
587 |
old: old new:new |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
588 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
589 |
^self new old: old new: new. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
590 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
591 |
"Created: / 21-02-2012 / 09:20:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
592 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
593 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
594 |
!JavaClassReloader::SingleClassReloader::FieldMapping methodsFor:'accessing'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
595 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
596 |
new |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
597 |
^ new |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
598 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
599 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
600 |
new:something |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
601 |
new := something. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
602 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
603 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
604 |
old |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
605 |
^ old |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
606 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
607 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
608 |
old:something |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
609 |
old := something. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
610 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
611 |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
612 |
old:oldArg new:newArg |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
613 |
old := oldArg. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
614 |
new := newArg. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
615 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
616 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
617 |
!JavaClassReloader::SingleClassReloader::FieldMapping methodsFor:'queries'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
618 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
619 |
mustMigrate |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
620 |
"Returns true if the field must be migrated, false otherwise" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
621 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
622 |
| oldD newD | |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
623 |
|
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
624 |
(old isNil or:[new isNil]) ifTrue:[ |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
625 |
^ true "Either one is missing, must migrate" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
626 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
627 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
628 |
old index ~~ new index ifTrue:[ |
2858
3a85f55763e2
Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2857
diff
changeset
|
629 |
^ true "Offsets changed, must migrate" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
630 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
631 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
632 |
oldD := old descriptor. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
633 |
newD := new descriptor. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
634 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
635 |
oldD = newD ifTrue:[ |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
636 |
^false"Same descriptor, the easy case" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
637 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
638 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
639 |
(oldD first == $L and: [newD first == $L]) ifTrue:[ |
2822
751597d0526a
do not migrate instances when type of the field is generalized
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2818
diff
changeset
|
640 |
(oldD = newD) ifTrue: [ ^ true ] ifFalse: [ |
2899
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
641 |
^ [ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
642 |
(old typeClass includesBehavior: new typeClass) not. |
2899
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
643 |
] on: JAVA java lang ClassNotFoundException do:[ |
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
644 |
false |
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
645 |
] |
2822
751597d0526a
do not migrate instances when type of the field is generalized
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2818
diff
changeset
|
646 |
]. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
647 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
648 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
649 |
1 to: (oldD size min: newD size) do:[:i| |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
650 |
((oldD at: i) == $L and: [ (newD at: i) == $L ]) ifTrue:[ |
2822
751597d0526a
do not migrate instances when type of the field is generalized
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2818
diff
changeset
|
651 |
(oldD = newD) ifTrue: [ ^ true ] ifFalse: [ |
2899
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
652 |
^ [ |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
653 |
(old typeClass includesBehavior: new typeClass) not. |
2899
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
654 |
] on: JAVA java lang ClassNotFoundException do:[ |
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
655 |
false |
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
656 |
] |
3290
76d4443744ed
JavaClass memory optimization (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3244
diff
changeset
|
657 |
]. |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
658 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
659 |
((oldD at: i) ~~ $[ or: [ (newD at: i) ~~ $[ ]) ifTrue:[ |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
660 |
^true"Different primitive/array types, must migrate" |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
661 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
662 |
]. |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
663 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
664 |
^false |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
665 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
666 |
"Created: / 21-02-2012 / 10:57:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2822
751597d0526a
do not migrate instances when type of the field is generalized
Marcel Hlopko <marcel.hlopko@gmail.com>
parents:
2818
diff
changeset
|
667 |
"Modified: / 12-10-2013 / 19:26:19 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>" |
2899
1dbc311e1d74
Bugfix JavaClassReloader: handle missing/mis-spelled classes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
2892
diff
changeset
|
668 |
"Modified: / 28-10-2013 / 11:26:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
669 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
670 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
671 |
!JavaClassReloader class methodsFor:'documentation'! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
672 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
673 |
version_CVS |
3412
df11bb428463
Merged with mercurial revision 4f3cc813be4 (8 changesets total)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
3360
diff
changeset
|
674 |
^ '$Header: /cvs/stx/stx/libjava/JavaClassReloader.st,v 1.5 2015-03-20 12:07:59 vrany Exp $' |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
675 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
676 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
677 |
version_HG |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
678 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
679 |
^ '$Changeset: <not expanded> $' |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
680 |
! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
681 |
|
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
682 |
version_SVN |
2731
13f5be2bf83b
Merged d87e89dd5276 and fe83a843a7bf (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
diff
changeset
|
683 |
^ 'Id' |
2353
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
684 |
! ! |
fa7400d022a0
Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
685 |