JavaContext.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sun, 26 Apr 2015 21:07:30 +0100
changeset 3442 e59716e00703
parent 3391 95546475ae6e
child 3386 ddcff50a1fdc
permissions -rw-r--r--
Oops, fix for commit 48320b2d4: Use first element of binding to read bound value For workspace variables it does not matter much as both values are valueholders, however in inspector and for debugger, binding contains block with fixed number of arguments.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3391
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
     1
"{ Encoding: utf8 }"
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
     2
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
     3
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
     4
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
     5
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
     6
 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: 2304
diff changeset
     7
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
     8
 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: 2304
diff changeset
     9
                            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: 2304
diff changeset
    10
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    11
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    12
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    13
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    14
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    15
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    16
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    17
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    18
 [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: 2304
diff changeset
    19
     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: 2304
diff changeset
    20
     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: 2304
diff changeset
    21
     as of 1.9.2010
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    22
"
680
31fd72cf818e printString
cg
parents: 671
diff changeset
    23
"{ Package: 'stx:libjava' }"
31fd72cf818e printString
cg
parents: 671
diff changeset
    24
3391
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    25
"{ NameSpace: Smalltalk }"
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
    26
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    27
Context variableSubclass:#JavaContext
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    28
	instanceVariableNames:'exArg exPC byteCode constPool acqrMonitors'
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
    29
	classVariableNames:''
916f444c5cae intitial checkin
cg
parents:
diff changeset
    30
	poolDictionaries:''
713
75e92ac63bf1 category change
cg
parents: 680
diff changeset
    31
	category:'Languages-Java-Support'
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
    32
!
916f444c5cae intitial checkin
cg
parents:
diff changeset
    33
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    34
Object subclass:#FinallyToken
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    35
	instanceVariableNames:'context exception selector value'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    36
	classVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    37
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    38
	privateIn:JavaContext
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    39
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    40
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    41
!JavaContext class methodsFor:'documentation'!
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    42
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    43
copyright
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    44
"
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
    45
 COPYRIGHT (c) 1996-2015 by Claus Gittinger
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    46
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    47
 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: 2304
diff changeset
    48
3324
a58245c0e83a Updated copyright notices.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3228
diff changeset
    49
 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: 2304
diff changeset
    50
                            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: 2304
diff changeset
    51
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    52
 This software is furnished under a license and may be used
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    53
 only in accordance with the terms of that license and with the
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    54
 inclusion of the above copyright notice.   This software may not
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    55
 be provided or otherwise made available to, or used by, any
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    56
 other person.  No title to or ownership of the software is
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    57
 hereby transferred.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    58
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    59
 [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: 2304
diff changeset
    60
     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: 2304
diff changeset
    61
     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: 2304
diff changeset
    62
     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: 2304
diff changeset
    63
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    64
"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    65
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    66
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    67
!JavaContext class methodsFor:'accessing'!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    68
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    69
finallyTokenClass
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    70
    ^FinallyToken
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    71
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    72
    "Created: / 18-04-2013 / 23:46:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
    73
! !
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
    74
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    75
!JavaContext methodsFor:'* As yet uncategorized *'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    76
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    77
markForException
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    78
    "set the exception handler flag in the receiver.
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    79
     The JVM needs this to enter an exception handler instead of restarting
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    80
     from the beginning (when the context is restarted).
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    81
     - a highly internal mechanism and not for public use."
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    82
"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    83
%{  /* NOCONTEXT */
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    84
#ifdef __JAVA_EX_PEND
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    85
     /* actually no longer - only a non-nil exPC is now used as marker */
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    86
     __INST(flags) = (OBJ)((INT)__INST(flags) | __MASKSMALLINT(__JAVA_EX_PEND));
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    87
#endif
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    88
%}
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    89
"
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
    90
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    91
    "Modified: / 13-12-1995 / 19:05:22 / cg"
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
    92
    "Modified: / 25-10-2010 / 17:19:23 / 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: 2304
diff changeset
    93
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    94
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    95
shouldExecuteFinallyOnUnwind
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    96
    "Return true, if a finally block should be executed
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    97
     upon force unwind"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    98
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
    99
    | m pc |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   100
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   101
    m := self method.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   102
    pc := self pc.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   103
    self assert: m notNil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   104
    m hasFinally ifFalse:[ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   105
    ^(method handlerFor: nil at: pc) notNil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   106
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   107
    "Created: / 10-04-2012 / 11:09:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
454
38f590639d65 *** empty log message ***
cg
parents: 429
diff changeset
   108
! !
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   109
916f444c5cae intitial checkin
cg
parents:
diff changeset
   110
!JavaContext methodsFor:'ST context mimicri'!
916f444c5cae intitial checkin
cg
parents:
diff changeset
   111
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   112
arg1Index
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   113
    "the java stack contains the receiver in a non-static
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   114
     method, as slot 0. Therefore, the first arg is found at slot2
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   115
     if this is for a non-static method"
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   116
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   117
    self method isStatic ifTrue:[
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   118
	^ 1
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   119
    ].
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   120
    ^ 2
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   121
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   122
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   123
argAt:n
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   124
    "return the i'th argument (1..nArgs)"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   125
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   126
    ^ self at:(self arg1Index - 1 + n)
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   127
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   128
    "Created: / 2.1.1998 / 17:54:13 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   129
    "Modified: / 2.1.1998 / 21:39:30 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   130
!
117
4625d32e5a00 rewritten to use an Array for the stack,
cg
parents: 88
diff changeset
   131
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   132
argAt:n put:value
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   133
    "change the i'th argument (1..nArgs)"
216
abe4c0313d97 checkin from browser
cg
parents: 211
diff changeset
   134
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   135
    ^ super argAt:(self arg1Index - 1 + n) put:value
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   136
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   137
    "Created: / 2.1.1998 / 17:54:34 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   138
    "Modified: / 2.1.1998 / 21:35:19 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   139
!
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   140
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   141
args
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   142
    "return an array filled with the arguments of this context"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   143
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   144
    |n|
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   145
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   146
    n := self numArgs.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   147
    n == 0 ifTrue:[
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   148
	"/ little optimization here - avoid creating empty containers
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   149
	^ #()
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   150
    ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   151
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   152
    ^ (Array new:n) replaceFrom:1 to:n with:self startingAt:(self arg1Index).
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   153
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   154
    "Created: / 2.1.1998 / 17:54:57 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   155
    "Modified: / 2.1.1998 / 21:34:44 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   156
!
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   157
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   158
lineNumber
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   159
    |nr pc|
156
fee47d32724d *** empty log message ***
cg
parents: 129
diff changeset
   160
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   161
    pc := self pc.
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
   162
211
bd118f601aed *** empty log message ***
cg
parents: 210
diff changeset
   163
"/ 'ask line for pc:' print. pc printCR.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   164
    pc isNil ifTrue:[
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   165
	nr := self lineNumberFromMethod.
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   166
	nr notNil ifTrue:[
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   167
	    ^ nr
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   168
	].
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   169
	" '-> 0 [a]' printCR. "
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   170
	^0
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   171
    ].
43
2c4ca2eb8d07 checkin from browser
cg
parents: 41
diff changeset
   172
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   173
    nr := self method lineNumberForPC:pc.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   174
    nr isNil ifTrue:[
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   175
	nr := self lineNumberFromMethod.
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   176
	nr notNil ifTrue:[
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   177
	    ^ nr
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   178
	].
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   179
	" '-> 0 [b]' printCR. "
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   180
	^ 0
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   181
    ].
211
bd118f601aed *** empty log message ***
cg
parents: 210
diff changeset
   182
"/ '-> ' print. nr printCR.
210
6a64bc70270b *** empty log message ***
cg
parents: 205
diff changeset
   183
     ^ nr.
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   184
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   185
    "Created: / 1.5.1996 / 15:05:47 / cg"
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   186
    "Modified: / 15.1.1998 / 15:25:29 / cg"
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   187
!
916f444c5cae intitial checkin
cg
parents:
diff changeset
   188
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   189
lineNumberFromMethod
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   190
    |m|
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   191
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   192
    m := self method.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   193
    m notNil ifTrue:[
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   194
	^ m lineNumber
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   195
    ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   196
    ^ nil
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   197
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   198
    "Created: / 4.1.1998 / 23:34:45 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   199
    "Modified: / 4.1.1998 / 23:35:55 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   200
!
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   201
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   202
method
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   203
    "the method may be found in the interpreter temps ..."
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   204
614
f042df9169e7 checkin from browser
cg
parents: 588
diff changeset
   205
    method isJavaMethod ifTrue:[^ method].
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   206
    ^ super method
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   207
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   208
    "Created: / 1.5.1996 / 15:03:43 / cg"
614
f042df9169e7 checkin from browser
cg
parents: 588
diff changeset
   209
    "Modified: / 25.9.1999 / 23:26:40 / cg"
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   210
!
916f444c5cae intitial checkin
cg
parents:
diff changeset
   211
916f444c5cae intitial checkin
cg
parents:
diff changeset
   212
numArgs
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   213
    "return the number of args.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   214
     Redefined since Java keeps the receiver of a non-static method
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   215
     at local slot 1."
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   216
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   217
    |n|
198
5543d1079a4a *** empty log message ***
cg
parents: 156
diff changeset
   218
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   219
    n := super numArgs.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   220
    self method isStatic ifFalse:[
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   221
	n := n - 1
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   222
    ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   223
    ^ n
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   224
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   225
    "Created: / 2.1.1998 / 22:21:24 / cg"
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   226
!
916f444c5cae intitial checkin
cg
parents:
diff changeset
   227
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   228
numTemps
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   229
    "return the number of temporary variables of the Method.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   230
     Redefined since Java keeps the receiver of a non-static method
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   231
     at local slot 1."
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   232
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   233
    |n|
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   234
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   235
    n := self size - super numVars - super numArgs.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   236
    ^ n
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   237
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   238
    "Created: / 13.1.1998 / 16:52:32 / cg"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   239
    "Modified: / 13.1.1998 / 17:23:27 / cg"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   240
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   241
32
0dbaa43a73db checkin from browser
cg
parents: 28
diff changeset
   242
pc
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   243
    lineNr isNil ifTrue:[^ nil].
429
99990a8a3509 *** empty log message ***
cg
parents: 427
diff changeset
   244
    ^ lineNr bitAnd:16rFFFF
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   245
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   246
    "Created: / 4.1.1998 / 23:33:48 / cg"
429
99990a8a3509 *** empty log message ***
cg
parents: 427
diff changeset
   247
    "Modified: / 10.11.1998 / 13:20:12 / cg"
99990a8a3509 *** empty log message ***
cg
parents: 427
diff changeset
   248
!
99990a8a3509 *** empty log message ***
cg
parents: 427
diff changeset
   249
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   250
selector
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   251
    "the selector can be extracted from the method.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   252
     the method may be found in the interpreter temps ..."
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   253
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   254
    |s m|
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   255
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   256
    selector isNil ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   257
	m := self method.
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   258
	m notNil ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   259
	    ^ m name
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   260
	]
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   261
    ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   262
    ^ super selector
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   263
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   264
    "Modified: / 30.12.1997 / 17:22:06 / cg"
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   265
    "Created: / 30.12.1997 / 17:23:47 / cg"
125
c99addd65f73 *** empty log message ***
cg
parents: 117
diff changeset
   266
!
c99addd65f73 *** empty log message ***
cg
parents: 117
diff changeset
   267
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   268
setPC:newPC
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   269
    lineNr := newPC
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   270
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   271
    "Created: / 5.1.1998 / 00:09:02 / cg"
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   272
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   273
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   274
temporaries
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   275
    "return an array filled with the arguments and variables of this context"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   276
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   277
    |n nSkipped|
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   278
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   279
    "/ the flas-numVars includes the receiver and args
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   280
    nSkipped := super numVars "self numArgs + self numVars".
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   281
    "/ but my context setup is args+numvars.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   282
    nSkipped := super numArgs + super numVars.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   283
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   284
    n := self size - nSkipped.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   285
    n == 0 ifTrue:[
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   286
	"/ little optimization here - avaoid creating empty containers
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   287
	^ #()
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   288
    ].
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   289
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   290
    ^ (Array new:n) replaceFrom:1 to:n with:self startingAt:nSkipped+1.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   291
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   292
    "Created: / 13.1.1998 / 15:44:12 / cg"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   293
    "Modified: / 13.1.1998 / 17:22:54 / cg"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   294
!
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   295
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   296
vars
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   297
    "return an array filled with the local variables of this context"
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   298
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   299
    |nonVars mySize|
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   300
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   301
    mySize := self numVars.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   302
    mySize == 0 ifTrue:[
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   303
	"/ little optimization here - avaoid creating empty containers
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   304
	^ #()
261
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   305
    ].
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   306
    nonVars := (self arg1Index-1) + self numArgs.
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   307
    ^ (Array new:mySize) replaceFrom:1 to:mySize with:self startingAt:nonVars+1
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   308
d95d5a3cc475 lots of new stuff
cg
parents: 255
diff changeset
   309
    "Created: / 13.1.1998 / 16:48:16 / cg"
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   310
! !
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   311
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   312
!JavaContext methodsFor:'accessing'!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   313
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   314
acquiredMonitors
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   315
    ^acqrMonitors
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   316
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   317
    "Created: / 08-11-2011 / 12:23:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   318
    "Modified (format): / 27-08-2012 / 16:46:27 / 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: 2304
diff changeset
   319
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   320
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   321
acquiredMonitorsDo: aBlock 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   322
"/    acqrMonitors isNil ifTrue: [ ^self ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   323
"/    acqrMonitors copy reverseDo: aBlock.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   324
    aBlock value: self receiver.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   325
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   326
    "Created: / 08-11-2011 / 15:03:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   327
    "Modified: / 26-08-2012 / 19:28:00 / 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: 2304
diff changeset
   328
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   329
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   330
addMonitor:mon 
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   331
    self assert:(acqrMonitors isNil or:[ acqrMonitors isOrderedCollection ]).
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   332
    acqrMonitors isNil ifTrue:[
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   333
        acqrMonitors := Stack new
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   334
    ].
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   335
    acqrMonitors push:mon.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   336
    self markForUnwind.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   337
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   338
    "Created: / 08-11-2011 / 14:19:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   339
    "Modified: / 17-11-2011 / 19:13:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3196
d617b4590431 (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3083
diff changeset
   340
    "Modified: / 04-08-2014 / 15:54:58 / 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: 2304
diff changeset
   341
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   342
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   343
argsAndVars
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   344
    "return an array filled with the arguments and variables of this context"
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   345
3083
ccde6af7278c JavaContext:
Claus Gittinger
parents: 2902
diff changeset
   346
    |rawArgsAndVars|
ccde6af7278c JavaContext:
Claus Gittinger
parents: 2902
diff changeset
   347
ccde6af7278c JavaContext:
Claus Gittinger
parents: 2902
diff changeset
   348
    rawArgsAndVars := self method originalMethodIfWrapped methodArgAndVarValuesInContext: self.
3228
a35cc585bb5a Fix in JavaContext>>argsAndVars: do not strip receiver (this) from arg-and-vars
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   349
"/    self method isStatic ifFalse:[^ rawArgsAndVars copyFrom:2].
3083
ccde6af7278c JavaContext:
Claus Gittinger
parents: 2902
diff changeset
   350
    ^ rawArgsAndVars
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   351
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   352
    "Created: / 04-11-2013 / 18:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3228
a35cc585bb5a Fix in JavaContext>>argsAndVars: do not strip receiver (this) from arg-and-vars
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3196
diff changeset
   353
    "Modified: / 12-08-2014 / 23:04:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2902
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   354
!
b7070e447ed0 Fixes for displaying local variables in debugger.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2887
diff changeset
   355
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   356
methodFromClass
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   357
    "Return the up-to-date method. Actyally, it fetches the method
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   358
     from receiver's class"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   359
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   360
    |c sender sendersSelector m|
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   361
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   362
    "mhmh - maybe I am a context for an unbound method (as generated by doIt);
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   363
     look in the sender's context. Consider this a kludge.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   364
     Future versions of ST/X's message lookup may store the method in
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   365
     the context.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   366
    "
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   367
    sender := self sender.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   368
    sender notNil ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   369
        sendersSelector := sender selector.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   370
        sendersSelector notNil ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   371
            (sendersSelector startsWith:'valueWithReceiver:') ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   372
                m := sender receiver.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   373
                m isMethod ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   374
                    method := m.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   375
                    ^ m
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   376
                ]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   377
            ]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   378
        ]
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   379
    ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   380
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   381
    c := self searchClass.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   382
    "
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   383
     the below cannot happen in normal circumstances
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   384
     (added to avoid recursive errors in case of a broken sender chain)
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   385
    "
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   386
    c isBehavior ifFalse:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   387
        'Context [error]: non class in searchClass' errorPrintCR.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   388
        '      selector: ' errorPrint. selector errorPrint.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   389
        ' receiver: ' errorPrint. receiver errorPrintCR.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   390
        ^ nil
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   391
    ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   392
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   393
    c := c whichClassIncludesSelector:selector.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   394
    c notNil ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   395
        method := c compiledMethodAt:selector.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   396
        ^ method
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   397
    ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   398
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   399
    ^ nil
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   400
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   401
    "Created: / 09-08-2013 / 02:25:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   402
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   403
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   404
programmingLanguage
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   405
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   406
    ^JavaLanguage instance
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   407
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   408
    "Created: / 17-03-2011 / 10:17:45 / 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: 2304
diff changeset
   409
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   410
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   411
removeMonitor: mon 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   412
    | poppedObject |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   413
    acqrMonitors isNil ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   414
        Logger 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   415
            log: ('removeMonitor: called but no monitors in acqrMonitors (%1)' 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   416
                    bindWith: self)
3391
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   417
            severity: Logger severityWARN
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   418
            facility: #JVM.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   419
        self breakPoint: #mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   420
        ^ self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   421
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   422
    poppedObject := acqrMonitors top.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   423
    self assert: (poppedObject == mon).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   424
    acqrMonitors remove: mon
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   425
        ifAbsent: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   426
            Logger 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   427
                log: ('removeMonitor: called but no such monitor in acqrMonitors (%1)' 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   428
                        bindWith: self)
3391
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   429
                severity: Logger severityWARN
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   430
                facility: #JVM.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   431
            self breakPoint: #mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   432
            ^ self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   433
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   434
        acqrMonitors isEmpty ifTrue: [self unmarkForUnwind].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   435
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   436
    "Created: / 08-11-2011 / 14:19:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   437
    "Modified: / 17-11-2011 / 19:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3391
95546475ae6e Use new Logger API (use Logger severityXXX instead of symbols)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3324
diff changeset
   438
    "Modified: / 02-03-2015 / 14:07:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   439
! !
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   440
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   441
!JavaContext methodsFor:'exception handler support'!
117
4625d32e5a00 rewritten to use an Array for the stack,
cg
parents: 88
diff changeset
   442
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   443
exceptionArg:aJavaException
511
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   444
    exArg := aJavaException.
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   445
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   446
    "Created: / 7.1.1998 / 21:36:56 / cg"
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   447
!
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   448
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   449
exceptionArg:aJavaException pc:newPc
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   450
    exArg := aJavaException.
1395b1fc453f *** empty log message ***
cg
parents: 454
diff changeset
   451
    exPC := newPc.
255
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   452
2d8b3948a08a *** empty log message ***
cg
parents: 252
diff changeset
   453
    "Created: / 7.1.1998 / 21:36:56 / cg"
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   454
! !
916f444c5cae intitial checkin
cg
parents:
diff changeset
   455
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   456
!JavaContext methodsFor:'non local control flow'!
2396
fadc6d7a2f5b Updated to rev 009a0df3afce
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2353
diff changeset
   457
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   458
restart
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   459
    "Update the bytecode before restarting so
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   460
     bytecode interpreter can execute new code, if any"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   461
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   462
    | m |
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   463
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   464
    m := self methodFromClass.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   465
    m notNil ifTrue:[
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   466
         byteCode := m byteCode.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   467
         constPool := m constantPool.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   468
    ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   469
    ^super restart.
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   470
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   471
    "Created: / 19-04-2013 / 13:33:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   472
    "Modified: / 09-08-2013 / 02:33:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   473
!
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   474
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   475
return
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   476
    selector last == $V ifTrue:[ ^ self return:nil  ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   477
    selector last == $; ifTrue:[ ^ self return:nil  ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   478
    selector last == $D ifTrue:[ ^ self return:0.0  ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   479
    selector last == $F ifTrue:[ ^ self return:0.0 asShortFloat  ].
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   480
    ^self return: 0
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   481
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   482
    "Created: / 18-04-2013 / 23:52:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   483
!
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   484
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   485
unwindAndRestartForJavaException
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   486
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   487
    "Called by JavaVM>>throwException: unwinds the stack
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   488
     up to this context and restarts it so an exception handler
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   489
     executes"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   490
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   491
    | con wasMarked |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   492
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   493
    "Each context that has a monitor acquired has
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   494
     and unwind action that release all monitors acquired.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   495
     However, we DONT want my monitors to be released,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   496
     so we temporarily unmark this context for unwind and
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   497
     then mark it again, eventually"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   498
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   499
    wasMarked := self isUnwindContext.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   500
    wasMarked ifTrue:[self unmarkForUnwind].    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   501
    self senderIsNil ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   502
        con := thisContext evaluateUnwindActionsUpTo:self.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   503
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   504
    wasMarked ifTrue:[self markForUnwind].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   505
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   506
    "oops, if nil, I am not on the calling chain;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   507
     (bad bad, unwind action have already been performed.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   508
      should we check for this situation first and NOT evaluate
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   509
      the unwind actions in this case ?)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   510
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   511
    con isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   512
        "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   513
         tried to return to a context which is already dead
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   514
         (i.e. the method/block has already executed a return)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   515
        "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   516
        ^ self invalidReturnOrRestartError:#'unwindAndRestart:' with:nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   517
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   518
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   519
     now, that all unwind-actions are done, I can use the
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   520
     low-level restart ...
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   521
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   522
    ^ self restart
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   523
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   524
    "Created: / 08-11-2011 / 22:00:56 / 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: 2304
diff changeset
   525
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   526
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   527
!JavaContext methodsFor:'printing & storing'!
916f444c5cae intitial checkin
cg
parents:
diff changeset
   528
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   529
printOn:aStream
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   530
    "append a brief description (excl. arguments) of the receiver onto aStream"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   531
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   532
    self printReceiverOn:aStream.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   533
    "/ aStream nextPutAll:' '.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   534
    aStream nextPutAll:' >> '.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   535
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   536
    aStream bold.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   537
    self selector printOn:aStream.    "show as string (as symbol looks too ugly in browser ...)"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   538
    "/ self selector storeOn:aStream.    "show as symbol"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   539
    aStream normal.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   540
    aStream space.
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   541
    (method notNil and:[method isWrapped]) ifTrue:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   542
        aStream nextPutAll:'(wrapped) '
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   543
    ].
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   544
    aStream nextPutAll:' ['; nextPutAll:(self method lineNumberForPC0: lineNr) printString; nextPutAll:']' .
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   545
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   546
    "Created: / 12-09-2013 / 23:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   547
!
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2726
diff changeset
   548
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   549
receiverPrintString
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   550
    "return a string describing the receiver of the context"
52
1dc41619b6f8 checkin from browser
cg
parents: 43
diff changeset
   551
680
31fd72cf818e printString
cg
parents: 671
diff changeset
   552
    |receiverClass receiverClassName newString implementorClass searchClass|
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   553
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   554
"/ %{
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   555
"/     /*
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   556
"/      * special handling for (invalid) free objects.
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   557
"/      * these only appear if some primitiveCode does not correctly use SEND macros,
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   558
"/      * which may lead to sends to free objects. In normal operation, this 'cannot' happen.
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   559
"/      */
363
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   560
"/     if (__isNonNilObject(__INST(receiver)) && (__qClass(__INST(receiver))==nil)) {
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   561
"/         receiverClassName = __MKSTRING("FreeObject");
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   562
"/     }
1c36ff13b671 *** empty log message ***
cg
parents: 346
diff changeset
   563
"/ %}.
680
31fd72cf818e printString
cg
parents: 671
diff changeset
   564
"/    receiverClassName notNil ifTrue:[^ receiverClassName].
228
18ed0b234062 checkin from browser
cg
parents: 216
diff changeset
   565
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   566
    receiverClass := receiver class.
680
31fd72cf818e printString
cg
parents: 671
diff changeset
   567
    "/ java has no class-methods ...
31fd72cf818e printString
cg
parents: 671
diff changeset
   568
    receiverClass := receiverClass theNonMetaclass.
31fd72cf818e printString
cg
parents: 671
diff changeset
   569
31fd72cf818e printString
cg
parents: 671
diff changeset
   570
    receiverClassName := receiverClass nameInBrowser.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   571
    (receiverClass == SmallInteger) ifTrue:[
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   572
	newString := '(' , receiver printString , ') ' , receiverClassName
228
18ed0b234062 checkin from browser
cg
parents: 216
diff changeset
   573
    ] ifFalse:[
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   574
	newString := receiverClassName
228
18ed0b234062 checkin from browser
cg
parents: 216
diff changeset
   575
    ].
18ed0b234062 checkin from browser
cg
parents: 216
diff changeset
   576
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   577
    "
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   578
     kludge to avoid slow search for containing class
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   579
    "
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   580
    (selector ~~ #doIt and:[selector ~~ #doIt:]) ifTrue:[
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   581
	implementorClass := self methodClass.
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   582
    ].
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   583
    implementorClass notNil ifTrue: [
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   584
	(implementorClass ~~ receiverClass) ifTrue: [
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   585
	    newString := newString , '>>>',
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   586
			 implementorClass nameInBrowser printString
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   587
	]
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   588
    ] ifFalse:[
2150
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   589
	searchClass := self searchClass.
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   590
	searchClass ~~ receiverClass ifTrue:[
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   591
	    newString := newString , '>>>' , searchClass nameInBrowser
3dbc038c151a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2108
diff changeset
   592
	].
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   593
"/        "
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   594
"/         kludge for doIt - these unbound methods are not
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   595
"/         found in the classes methodDictionary
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   596
"/        "
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   597
"/        (selector ~~ #doIt and:[selector ~~ #doIt:]) ifTrue:[
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   598
"/            newString := newString , '>>>**NONE**'
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   599
"/        ]
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   600
    ].
916f444c5cae intitial checkin
cg
parents:
diff changeset
   601
252
04b330744577 new javaVM stuff & back to pre-stefans changes
cg
parents: 228
diff changeset
   602
    ^ newString
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   603
! !
916f444c5cae intitial checkin
cg
parents:
diff changeset
   604
343
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   605
!JavaContext methodsFor:'queries'!
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   606
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   607
hasStackToShow
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   608
    "private interface to the debugger.
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   609
     Smalltalk contexts return false here - other language frames
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   610
     (i.e. Java frames) may want to show the evaluation stack"
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   611
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   612
    ^ true
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   613
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   614
    "Modified: / 13.5.1997 / 16:31:12 / cg"
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   615
    "Created: / 7.5.1998 / 01:23:57 / cg"
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   616
!
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   617
346
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   618
isJavaContext
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   619
    "return true, if this is a javaContext."
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   620
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   621
    ^ true
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   622
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   623
    "Created: / 8.5.1998 / 21:23:47 / cg"
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   624
!
36573254a561 added #isJavaContext
cg
parents: 343
diff changeset
   625
343
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   626
stackFrame
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   627
    "private interface to the debugger."
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   628
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   629
    ^ (1 to:self size) collect:[:i | self at:i]
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   630
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   631
    "Created: / 7.5.1998 / 01:26:19 / cg"
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   632
! !
b6ff12d916fb checkin from browser
cg
parents: 264
diff changeset
   633
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   634
!JavaContext::FinallyToken methodsFor:'accessing'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   635
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   636
context
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   637
    ^ context
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   638
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   639
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   640
context:something
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   641
    context := something.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   642
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   643
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   644
exception
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   645
    ^ exception
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   646
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   647
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   648
exception:something
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   649
    exception := something.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   650
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   651
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   652
selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   653
    ^ selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   654
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   655
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   656
selector:something
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   657
    selector := something.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   658
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   659
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   660
value
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   661
    ^ value
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   662
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   663
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   664
value:something
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   665
    value := something.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   666
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   667
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   668
!JavaContext::FinallyToken methodsFor:'actions'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   669
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   670
pass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   671
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   672
    selector == #return ifTrue:[
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   673
        thisContext evaluateUnwindActionsUpTo:context.    
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   674
        context return
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   675
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   676
    selector == #return: ifTrue:[
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   677
        thisContext evaluateUnwindActionsUpTo:context.    
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   678
        context return: value
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   679
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   680
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   681
    self error:'Should never be reached'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   682
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   683
    "Created: / 04-04-2012 / 20:24:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2843
36f000314bcd Fix in mixed exception handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   684
    "Modified: / 10-10-2013 / 10:13:15 / 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: 2304
diff changeset
   685
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   686
129
f40775af59a5 checkin from browser
cg
parents: 125
diff changeset
   687
!JavaContext class methodsFor:'documentation'!
28
916f444c5cae intitial checkin
cg
parents:
diff changeset
   688
916f444c5cae intitial checkin
cg
parents:
diff changeset
   689
version
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   690
    ^ '$Header: /cvs/stx/stx/libjava/JavaContext.st,v 1.42 2013-09-06 00:41:22 vrany Exp $'
2304
73806b718f4e fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2168
diff changeset
   691
!
73806b718f4e fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2168
diff changeset
   692
73806b718f4e fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2168
diff changeset
   693
version_CVS
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   694
    ^ '$Header: /cvs/stx/stx/libjava/JavaContext.st,v 1.42 2013-09-06 00:41:22 vrany Exp $'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   695
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   696
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   697
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   698
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   699
    ^ '$Changeset: <not expanded> $'
2151
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   700
!
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   701
c0b6570c6f9b Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2150
diff changeset
   702
version_SVN
2731
13f5be2bf83b Merged d87e89dd5276 and fe83a843a7bf (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2711 2678
diff changeset
   703
    ^ 'Id'
2108
ca8c4e7db2e8 category change
Claus Gittinger <cg@exept.de>
parents: 749
diff changeset
   704
! !
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2304
diff changeset
   705