JavaVM.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 15 Dec 2012 14:46:18 +0100
branchdevelopment
changeset 1876 482ad5ebe5da
parent 1867 cd4ec4fbe798
child 1877 14cbc77e9aaa
permissions -rw-r--r--
Merged some fixes from jv's repo
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     1
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     2
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
     3
1155
vranyj1
parents: 1152
diff changeset
     4
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
     5
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     6
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     7
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
     8
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
     9
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    10
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    11
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    12
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    13
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    14
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    15
1155
vranyj1
parents: 1152
diff changeset
    16
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    17
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    18
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    19
     as of 1.9.2010
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    20
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    21
"{ Package: 'stx:libjava' }"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    22
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    23
Object subclass:#JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    24
	instanceVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    25
	classVariableNames:'UnhandledJavaExceptionSignal JavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    26
		UnimplementedInstructionSignal UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    27
		BadMessageSignal InternalErrorSignal CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    28
		FullExceptionTrace StackTrace TraceHistory LockTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    29
		LockTableAccess LibPath SimulatedLibs LoadedLibs
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    30
		SimulatedNativeLibs LoadedNativeLibs JavaWindowGroup KnownWindows
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    31
		DrawOPTrace WindowOPTrace WindowCreationTrace EventTrace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    32
		ThreadTrace MonitorTrace MonitorTraceId ExceptionTrace InsnCount
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    33
		InsnCounts FileOpenTrace FileAccessTrace FileOpenConfirmation
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
    34
		SocketConnectConfirmation FileIOTrace OpenFileTable
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    35
		OpenFileTableLock CachedNativeMethodTable ExceptionDebug
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    36
		ExitDebug JavaConsoleStream StandardThreadGroup
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    37
		EnteredMonitorsPerProcess AcquiredMonitorsPerProcess JavaMethods
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    38
		DUMMY_LONG_HIGHWORD DUMMY_DOUBLE_HIGHWORD NoAudio
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    39
		FirstWindowCreationSemaphore PermittedDirectories
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    40
		PermittedHostConnects SimulatedOS O_WGgraphics_originX
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    41
		O_WGgraphics_originY O_WGgraphics_pData O_FramePeer_pNativeWidget
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    42
		O_FramePeer_pData ImageStretchCache LastGraphics LastGC
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    43
		EnteredMonitorObject EnteredMonitorObjectCount
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    44
		EnteredMonitorProcess LeftMonitorObject JavaEventThread
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    45
		JavaScreenUpdaterThread JavaEventQueueThread SystemProperties
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
    46
		ExceptionDebugPatterns NullPointerExceptionDebug
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    47
		DivisionByZeroExceptionDebug IOExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    48
		StdinReplacementFileQuerySignal AssertionsEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    49
		SimulatedNativeMemory Reflection ZipCache ZipEntryCache
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
    50
		ZipLastModTimesCache ZipInflaters JavaPrivilegedAccessQuery
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    51
		ClassRegistry SystemClassLoader ExtClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    52
		SmalltalkClassLoader StartupTime FinalizationEnabled
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    53
		FinalizationLobby ParkUnparkSemaphores ThreadInterrupts
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    54
		EagerResolvingEnabled OldspaceIncreased PerfCounters
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
    55
		AboutToSnapshotAction SnapshotFinishedAction'
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
    56
	poolDictionaries:'JavaConstants'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    57
	category:'Languages-Java-Support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    58
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    59
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    60
Object subclass:#Performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    61
	instanceVariableNames:'vm'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    62
	classVariableNames:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    63
	poolDictionaries:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    64
	privateIn:JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    65
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    66
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    67
Object subclass:#Reflection
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    68
	instanceVariableNames:'vm constantPoolMapping javaClasses javaArrayClasses
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    69
		javaMethodsPerMethod returnNilIfMissing realMethods'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    70
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    71
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    72
	privateIn:JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    73
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    74
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    75
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    76
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    77
copyright
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    78
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    79
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    80
1155
vranyj1
parents: 1152
diff changeset
    81
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    82
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    83
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    84
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    85
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    86
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    87
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    88
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    89
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    90
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    91
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    92
1155
vranyj1
parents: 1152
diff changeset
    93
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    94
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    95
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    96
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    97
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    98
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    99
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   101
documentation
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   102
"Runtime support and environment for Java.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   103
You shouldn't communicate with JavaVM directly,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
use Java class instead. JavaVM is layer between
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
the native interpret and the rest of the system.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   106
JavaVM implements native java virtual machine
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   107
methods called by interpret, hides java primitive
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   108
types handling, and gives the ST world ways to
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   109
control class loading and reflection"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   112
nativeMethods
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   113
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   114
    all native methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   115
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   116
        JavaMethod allSubInstances select:[:m |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   117
            m isNative
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   118
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   120
    implemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   122
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   123
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   125
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   126
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   127
                JavaVM class implements:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   128
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   129
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   130
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   131
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   133
    unimplemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   135
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   136
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   138
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   139
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   140
                (JavaVM class implements:sel) not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   141
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   142
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   143
            ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
   144
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   146
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   147
    list of all native methods as in jdk1.1.3:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   148
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   149
      X - implemented
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   150
      * - implemented to be validated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   151
      x - implemented with limited functionality
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   152
      o - implemented as dummy (no functionality)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   153
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   154
    X (Math::double sin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   155
    X (Math::double cos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   156
    X (Math::double tan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   157
    X (Math::double asin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   158
    X (Math::double acos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   159
    X (Math::double atan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   160
    X (Math::double exp (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   161
    X (Math::double log (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   162
    X (Math::double sqrt (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   163
      (Math::double IEEEremainder (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   164
    X (Math::double ceil (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   165
    X (Math::double floor (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   166
      (Math::double rint (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   167
      (Math::double atan2 (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   168
    X (Math::double pow (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   170
    X (Class::java.lang.Class forName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   171
    X (Class::java.lang.Object newInstance ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   172
    * (Class::boolean isInstance (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   173
    X (Class::boolean isAssignableFrom (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   174
    X (Class::boolean isInterface ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   175
      (Class::boolean isArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   176
    X (Class::boolean isPrimitive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   177
    X (Class::java.lang.String getName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   178
    X (Class::java.lang.ClassLoader getClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   179
    X (Class::java.lang.Class getSuperclass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   180
      (Class::java.lang.Class[] getInterfaces ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   181
      (Class::java.lang.Class getComponentType ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   182
      (Class::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   183
      (Class::java.lang.Object[] getSigners ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   184
      (Class::void setSigners (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   185
    X (Class::java.lang.Class getPrimitiveClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   186
      (Class::java.lang.reflect.Field getField0 (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   187
      (Class::java.lang.reflect.Field[] getFields0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   188
    X (Class::java.lang.reflect.Method getMethod0 (java.lang.String java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   189
    X (Class::java.lang.reflect.Method[] getMethods0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   190
      (Class::java.lang.reflect.Constructor[] getConstructors0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   191
      (Class::java.lang.reflect.Constructor getConstructor0 (java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   193
    X (InetAddressImpl::java.lang.String getLocalHostName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   194
    X (InetAddressImpl::void makeAnyLocalAddress (java.net.InetAddress))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   195
    X (InetAddressImpl::byte[][] lookupAllHostAddr (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   196
      (InetAddressImpl::java.lang.String getHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   197
    X (InetAddressImpl::int getInetFamily ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   199
    X (ResourceBundle::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   201
    X (System::void setIn0 (java.io.InputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   202
    X (System::void setOut0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   203
    X (System::void setErr0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   204
    X (System::long currentTimeMillis ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   205
    X (System::void arraycopy (java.lang.Object int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   206
    X (System::int identityHashCode (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   207
    X (System::java.util.Properties initProperties (java.util.Properties))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   209
    X (Thread::java.lang.Thread currentThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   210
    X (Thread::void yield ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   211
    X (Thread::void sleep (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   212
    X (Thread::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   213
    X (Thread::boolean isInterrupted (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   214
    X (Thread::boolean isAlive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   215
      (Thread::int countStackFrames ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   216
    X (Thread::void setPriority0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   217
    X (Thread::void stop0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   218
    X (Thread::void suspend0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
    X (Thread::void resume0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
    * (Thread::void interrupt0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
      (String::java.lang.String intern ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
    X (Float::int floatToIntBits (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
    X (Float::float intBitsToFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
      (ObjectStreamClass::int getClassAccess (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
      (ObjectStreamClass::java.lang.String[] getMethodSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
      (ObjectStreamClass::int getMethodAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
      (ObjectStreamClass::java.lang.String[] getFieldSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
      (ObjectStreamClass::int getFieldAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
      (ObjectStreamClass::java.io.ObjectStreamField[] getFields0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
      (ObjectStreamClass::long getSerialVersionUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
      (ObjectStreamClass::boolean hasWriteObject (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
      (ObjectInputStream::java.lang.Class loadClass0 (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
      (ObjectInputStream::void inputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
      (ObjectInputStream::java.lang.Object allocateNewObject (java.lang.Class java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   238
      (ObjectInputStream::java.lang.Object allocateNewArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   239
      (ObjectInputStream::boolean invokeObjectReader (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   241
      (SecurityManager::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
    X (SecurityManager::java.lang.ClassLoader currentClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
      (SecurityManager::int classDepth (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
    X (SecurityManager::int classLoaderDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
      (SecurityManager::java.lang.Class currentLoadedClass0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
    X (ClassLoader::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
    X (ClassLoader::java.lang.Class defineClass0 (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
    X (ClassLoader::void resolveClass0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
    X (ClassLoader::java.lang.Class findSystemClass0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
    X (ClassLoader::java.io.InputStream getSystemResourceAsStream0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
      (ClassLoader::java.lang.String getSystemResourceAsName0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
    X (FileDescriptor::boolean valid ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
      (FileDescriptor::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
    X (FileDescriptor::java.io.FileDescriptor initSystemFD (java.io.FileDescriptor int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
    X (Object::java.lang.Class getClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
    X (Object::int hashCode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
    X (Object::java.lang.Object clone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
    X (Object::void notify ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
    X (Object::void notifyAll ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
    X (Object::void wait (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
    X (FileOutputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
    X (FileOutputStream::void openAppend (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
    X (FileOutputStream::void write (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
    X (FileOutputStream::void writeBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
    X (FileOutputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
    X (FileInputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
    X (FileInputStream::int read ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
    X (FileInputStream::int readBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
      (FileInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
    X (FileInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
    X (FileInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
      (VM::int getState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
      (VM::boolean threadsSuspended ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
      (VM::void unsuspendThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
      (VM::void unsuspendSomeThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
    X (File::boolean exists0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
    X (File::boolean canWrite0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
    X (File::boolean canRead0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
    X (File::boolean isFile0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
    X (File::boolean isDirectory0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
    X (File::long lastModified0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
    X (File::long length0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
    X (File::boolean mkdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
    X (File::boolean renameTo0 (java.io.File))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
    X (File::boolean delete0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
      (File::boolean rmdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
    X (File::java.lang.String[] list0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
      (File::java.lang.String canonPath (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
    X (File::boolean isAbsolute ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   297
      (ObjectOutputStream::void outputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   298
      (ObjectOutputStream::boolean invokeObjectWriter (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   300
    X (Throwable::void printStackTrace0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   301
    X (Throwable::java.lang.Throwable fillInStackTrace ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   303
    X (Double::long doubleToLongBits (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   304
    X (Double::double longBitsToDouble (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   305
    X (Double::double valueOf0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   307
    X (Runtime::void exitInternal (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   308
    o (Runtime::void runFinalizersOnExit0 (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   309
    o (Runtime::java.lang.Process execInternal (java.lang.String[] java.lang.String[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   310
    X (Runtime::long freeMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   311
    X (Runtime::long totalMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   312
    X (Runtime::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   313
      (Runtime::void runFinalization ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   314
      (Runtime::void traceInstructions (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   315
      (Runtime::void traceMethodCalls (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   316
    X (Runtime::java.lang.String initializeLinkerInternal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   317
    X (Runtime::java.lang.String buildLibName (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   318
    X (Runtime::int loadFileInternal (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   320
      (WDrawingSurfaceInfo::int lock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   321
      (WDrawingSurfaceInfo::void unlock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   322
      (WDrawingSurfaceInfo::int getHWnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   323
      (WDrawingSurfaceInfo::int getHBitmap ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   324
      (WDrawingSurfaceInfo::int getPBits ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   325
      (WDrawingSurfaceInfo::int getHDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   326
      (WDrawingSurfaceInfo::int getDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   327
      (WDrawingSurfaceInfo::int getHPalette ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   329
    X (WDefaultFontCharset::boolean canConvert (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   331
      (ColorModel::void deletepData ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   332
    X (WToolkit::void init (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   333
    X (WToolkit::void eventLoop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   334
      (WToolkit::java.awt.image.ColorModel makeColorModel ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   335
    X (WToolkit::int getScreenResolution ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   336
    X (WToolkit::int getScreenWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   337
    X (WToolkit::int getScreenHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   338
      (WToolkit::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   339
    * (WToolkit::void beep ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   340
    X (WToolkit::void loadSystemColors (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   342
      (WPrintJob::void end ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   344
    X (WDialogPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   345
    X (WDialogPeer::void _show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   346
    X (WDialogPeer::void _hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   348
    X (WWindowPeer::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   349
    X (WWindowPeer::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   350
    X (WWindowPeer::void _setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   351
    X (WWindowPeer::void _setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   352
    X (WWindowPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   353
    o (WWindowPeer::void updateInsets (java.awt.Insets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   354
      (WWindowPeer::java.awt.Component getContainerElement (java.awt.Container int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   356
    X (WCanvasPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   357
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   358
    X (WTextAreaPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   359
    X (WTextAreaPeer::void insertText (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   360
      (WTextAreaPeer::void replaceText (java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   362
    X (WTextComponentPeer::java.lang.String getText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   363
    X (WTextComponentPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   364
    X (WTextComponentPeer::int getSelectionStart ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   365
    X (WTextComponentPeer::int getSelectionEnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   366
    X (WTextComponentPeer::void select (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   367
    X (WTextComponentPeer::void enableEditing (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   369
    X (WComponentPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   370
    X (WComponentPeer::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   371
    X (WComponentPeer::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   372
    X (WComponentPeer::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   373
    X (WComponentPeer::java.awt.Point getLocationOnScreen ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   374
    X (WComponentPeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   375
    o (WComponentPeer::void handleEvent (java.awt.AWTEvent))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   376
    o (WComponentPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   377
    X (WComponentPeer::void _setForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   378
    X (WComponentPeer::void _setBackground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   379
    o (WComponentPeer::void setFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   380
    o (WComponentPeer::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   381
    o (WComponentPeer::void setCursor (java.awt.Cursor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   382
    o (WComponentPeer::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   383
      (WComponentPeer::void _beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   384
      (WComponentPeer::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   385
    o (WComponentPeer::void setZOrderPosition (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   387
    X (WFramePeer::void setMenuBar0 (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   388
    X (WFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   389
    X (WFramePeer::void _setIconImage (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   391
    o (WFontMetrics::boolean needsConversion (java.awt.Font sun.awt.FontDescriptor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   392
    o (WFontMetrics::int getMFCharSegmentWidth (java.awt.Font sun.awt.FontDescriptor boolean char[] int int byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   393
      (WFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   394
      (WFontMetrics::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   396
    o (WChoicePeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   397
    o (WChoicePeer::void remove (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   398
    o (WChoicePeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   399
    X (WChoicePeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   400
    X (WChoicePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   402
    X (WLabelPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   403
    o (WLabelPeer::void setAlignment (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   404
    X (WLabelPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   405
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   406
    X (WMenuItemPeer::void _setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   407
    X (WMenuItemPeer::void create (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   408
    X (WMenuItemPeer::void enable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   409
    o (WMenuItemPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   410
      (WMenuPeer::void addSeparator ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   411
      (WMenuPeer::void delItem (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   412
    X (WMenuPeer::void createMenu (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   413
      (WMenuPeer::void createSubMenu (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   415
      (WPopupMenuPeer::void createMenu (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   416
      (WPopupMenuPeer::void _show (java.awt.Event))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   417
      (WMenuBarPeer::void addMenu (java.awt.Menu))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   418
      (WMenuBarPeer::void delMenu (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   419
    X (WMenuBarPeer::void create (sun.awt.windows.WFramePeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   421
      (WCheckboxMenuItemPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   423
    X (WFileDialogPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   425
    X (WCheckboxPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   426
    X (WCheckboxPeer::void setCheckboxGroup (java.awt.CheckboxGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   427
      (WCheckboxPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   428
    X (WCheckboxPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   430
    X (WClipboard::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   431
      (WClipboard::void setClipboardText (java.awt.datatransfer.StringSelection))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   432
      (WClipboard::java.lang.String getClipboardText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   434
    X (WListPeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   435
    X (WListPeer::void delItems (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   436
    X (WListPeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   437
      (WListPeer::void deselect (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   438
      (WListPeer::void makeVisible (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   439
    X (WListPeer::void setMultipleSelections (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   440
    X (WListPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   441
    X (WListPeer::boolean isSelected (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   443
    x (WScrollbarPeer::void _setValues (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   444
    x (WScrollbarPeer::void setLineIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   445
    x (WScrollbarPeer::void setPageIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   446
    x (WScrollbarPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   448
    x (ImageRepresentation::void offscreenInit (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   449
    x (ImageRepresentation::boolean setBytePixels (int int int int java.awt.image.ColorModel byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   450
    x (ImageRepresentation::boolean setIntPixels (int int int int java.awt.image.ColorModel int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   451
    x (ImageRepresentation::boolean finish (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   452
    X (ImageRepresentation::void imageDraw (java.awt.Graphics int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   453
    x (ImageRepresentation::void imageStretch (java.awt.Graphics int int int int int int int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   454
    x (ImageRepresentation::void disposeImage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   456
    X (WTextFieldPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   457
    X (WTextFieldPeer::void setEchoCharacter (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   459
    X (WScrollPanePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   460
    o (WScrollPanePeer::int getOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   461
      (WScrollPanePeer::void setInsets ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   462
      (WScrollPanePeer::void setScrollPosition (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   463
    x (WScrollPanePeer::int _getHScrollbarHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   464
    x (WScrollPanePeer::int _getVScrollbarWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   465
    o (WScrollPanePeer::void setSpans (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   466
      (WScrollPanePeer::java.awt.Component getScrollChild ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   468
      (WEmbeddedFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   469
    X (WButtonPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   470
    X (WButtonPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   472
    x (WColor::java.awt.Color getDefaultColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   474
    x (GifImageDecoder::boolean parseImage (int int int int boolean int byte[] byte[] java.awt.image.IndexColorModel))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   476
    x (WGraphics::void createFromComponent (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   477
    x (WGraphics::void createFromGraphics (sun.awt.windows.WGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   478
      (WGraphics::void createFromPrintJob (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   479
      (WGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   480
    x (WGraphics::void imageCreate (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   481
    x (WGraphics::void pSetFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   482
    X (WGraphics::void pSetForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   483
      (WGraphics::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   484
    x (WGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   485
    x (WGraphics::void setPaintMode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   486
    x (WGraphics::void setXORMode (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   487
    o (WGraphics::java.awt.Rectangle getClipBounds ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   488
    o (WGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   489
      (WGraphics::void removeClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   490
    X (WGraphics::void clearRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   491
    X (WGraphics::void fillRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   492
    X (WGraphics::void drawRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   493
      (WGraphics::void drawSFChars (char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   494
    x (WGraphics::int drawMFCharsSegment (java.awt.Font sun.awt.FontDescriptor char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   495
      (WGraphics::int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   496
      (WGraphics::void drawBytes (byte[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   497
    X (WGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   498
    X (WGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   499
    o (WGraphics::void drawRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   500
    o (WGraphics::void fillRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   501
    X (WGraphics::void drawPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   502
      (WGraphics::void drawPolyline (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   503
    X (WGraphics::void fillPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   504
    x (WGraphics::void drawOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   505
    x (WGraphics::void fillOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   506
    x (WGraphics::void drawArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   507
    x (WGraphics::void fillArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   508
      (WGraphics::void print (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   509
      (WGraphics::void close (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   510
      (JPEGImageDecoder::void readImage (java.io.InputStream byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   511
    o (OffScreenImageSource::void sendPixels ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   514
    additional native methods added by microsoft (sigh):
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   516
    X (java.lang.String::boolean equals (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   517
    X (java.lang.String::int length (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   518
    o (java.lang.Runtime::void setInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   519
    o (java.lang.Runtime::void setOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   521
      (java.lang.String::int compareTo (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   522
      (java.lang.String::boolean equalsIgnoreCase (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   523
      (java.lang.String::int indexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   524
      (java.lang.String::boolean startsWith (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   525
      (java.lang.String::boolean regionMatches (int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   526
      (java.lang.String::boolean regionMatches (boolean int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   527
      (java.lang.String::int lastIndexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   528
      (java.lang.ClassLoader::void resolveClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   530
      (java.lang.ClassLoader::java.lang.Class createArrayClass (java.lang.String java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   531
      (java.io.PrintStream::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   532
      (java.lang.Runtime::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   533
      (java.lang.Runtime::boolean isInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   534
      (java.lang.ThreadGroup::void initMainThreadGroup0 (java.lang.ThreadGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   535
      (java.lang.System::void validateSecurityManager (java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   536
      (java.lang.Class::java.lang.reflect.Method getMethod2 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   537
      (java.io.ObjectOutputStream::void invokeDefaultWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   538
      (java.io.ObjectOutputStream::void invokeWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   539
      (java.io.ObjectInputStream::void invokeDefaultReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   540
      (java.io.ObjectInputStream::void invokeReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   541
      (java.util.TimeZone::java.util.TimeZone getWin32TimeZone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   542
      (java.net.InetAddress::java.lang.Object[] lookupHostByName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   543
      (java.net.InetAddress::java.lang.Object[] lookupHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   544
      (java.io.ObjectStreamClass::void doMismatchedRead (java.io.ObjectInputStream java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   545
      (java.io.ObjectStreamClass::long getClassDefinedUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   546
      (java.io.ObjectStreamClass::boolean findObjectMethod0 (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   547
      (java.lang.reflect.Method::java.lang.String getDescriptor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   548
      (java.lang.reflect.Array::void setShort (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   549
      (java.lang.reflect.Array::char getChar (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   550
      (java.lang.reflect.Array::void setChar (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   551
      (java.lang.reflect.Array::void setDouble (java.lang.Object int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   552
      (java.lang.reflect.Array::java.lang.Object get (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   553
      (java.lang.reflect.Array::void set (java.lang.Object int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   554
      (java.lang.reflect.Array::int getInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   555
      (java.lang.reflect.Array::void setInt (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   556
      (java.lang.reflect.Array::java.lang.Object multiNewArray (java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   557
      (java.lang.reflect.Array::boolean getBoolean (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   558
      (java.lang.reflect.Array::byte getByte (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   559
      (java.lang.reflect.Array::float getFloat (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   560
      (java.lang.reflect.Array::void setBoolean (java.lang.Object int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   561
      (java.lang.reflect.Array::long getLong (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   562
      (java.lang.reflect.Array::void setByte (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   563
      (java.lang.reflect.Array::void setLong (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   564
      (java.lang.reflect.Array::void setFloat (java.lang.Object int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   565
      (java.lang.reflect.Array::java.lang.Object newArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   566
      (java.lang.reflect.Array::int getLength (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   567
      (java.lang.reflect.Array::unsigned short getShort (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   568
      (java.lang.reflect.Array::double getDouble (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   569
      (java.lang.reflect.Field::void setShort (java.lang.Object unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   570
      (java.lang.reflect.Field::char getChar (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   571
      (java.lang.reflect.Field::void setChar (java.lang.Object char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   572
      (java.lang.reflect.Field::void setDouble (java.lang.Object double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   573
      (java.lang.reflect.Field::java.lang.Object get (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   574
      (java.lang.reflect.Field::void set (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   575
      (java.lang.reflect.Field::int getInt (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   576
      (java.lang.reflect.Field::void setInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   577
      (java.lang.reflect.Field::boolean getBoolean (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   578
      (java.lang.reflect.Field::byte getByte (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   579
      (java.lang.reflect.Field::float getFloat (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   580
      (java.lang.reflect.Field::long getLong (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   581
      (java.lang.reflect.Field::void setBoolean (java.lang.Object boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   582
      (java.lang.reflect.Field::void setByte (java.lang.Object byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   583
      (java.lang.reflect.Field::void setLong (java.lang.Object long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   584
      (java.lang.reflect.Field::void setFloat (java.lang.Object float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   585
      (java.lang.reflect.Field::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   586
      (java.lang.reflect.Field::unsigned short getShort (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   587
      (java.lang.reflect.Field::double getDouble (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   588
      (java.lang.reflect.Constructor::java.lang.Object newInstance (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   589
      (java.lang.reflect.Constructor::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   590
      (java.util.zip.Inflater::void setDictionary0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   591
      (java.util.zip.Inflater::int getTotalIn0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   592
      (java.util.zip.Inflater::void reset0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   593
      (java.util.zip.Inflater::void end0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   594
      (java.util.zip.Inflater::int inflate0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   595
      (java.util.zip.Inflater::int getTotalOut0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   596
      (java.util.zip.Inflater::int getAdler0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   597
      (java.util.zip.CRC32::void update1 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   598
      (java.util.zip.CRC32::void update (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   600
      (com.ms.security.PolicyEngine::boolean isSystemClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   601
      (com.ms.security.PolicyEngine::void denyPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   602
      (com.ms.security.PolicyEngine::void revertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   603
      (com.ms.security.PolicyEngine::void initPolicyEngine ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   604
      (com.ms.security.PolicyEngine::java.lang.Class _getClassOfCaller (java.lang.Class[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   605
      (com.ms.security.PolicyEngine::void internalCheckClass (java.lang.Class com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   606
      (com.ms.security.PolicyEngine::com.ms.security.PermissionDataSet getPermissionsOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   607
      (com.ms.security.PolicyEngine::void assertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   608
      (com.ms.security.PolicyEngine::void deepCheck (com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   609
      (com.ms.security.PolicyEngine::void shallowCheck (com.ms.security.PermissionID java.lang.Object java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   610
      (com.ms.security.PolicyEngine::java.security.Principal getPrincipalOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   611
      (com.ms.security.permissions.ThreadPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   612
      (com.ms.security.permissions.ThreadPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   613
      (com.ms.security.permissions.RegistryPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   614
      (com.ms.security.permissions.RegistryPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   615
      (com.ms.security.management.ZonePermissions::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   616
      (com.ms.security.management.ZonePermissions::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   617
      (com.ms.security.permissions.UIPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   618
      (com.ms.security.permissions.UIPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   619
      (com.ms.security.permissions.NetIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   620
      (com.ms.security.permissions.NetIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   621
      (com.ms.security.permissions.ReflectionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   622
      (com.ms.security.permissions.ReflectionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   623
      (com.ms.vm.WeakReference::void storeRef (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   624
      (com.ms.vm.WeakReference::int allocRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   625
      (com.ms.vm.WeakReference::void freeRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   626
      (com.ms.vm.WeakReference::java.lang.Object fetchRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   627
      (com.ms.dll.DllLib::void CoTaskMemFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   628
      (com.ms.dll.DllLib::void CopyWithDstOffset (int float[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   629
      (com.ms.dll.DllLib::void CopyWithDstOffset (int double[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   630
      (com.ms.dll.DllLib::int numParamBytes0 (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   631
      (com.ms.dll.DllLib::void CopyWithDstOffset (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   632
      (com.ms.dll.DllLib::void write2 (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   633
      (com.ms.dll.DllLib::void write2 (int int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   634
      (com.ms.dll.DllLib::void write2 (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   635
      (com.ms.dll.DllLib::void write2 (int int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   636
      (com.ms.dll.DllLib::int GlobalAlloc (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   637
      (com.ms.dll.DllLib::void resize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   638
      (com.ms.dll.DllLib::long read8 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   639
      (com.ms.dll.DllLib::long read8 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   640
      (com.ms.dll.DllLib::int lstrcpy (java.lang.StringBuffer int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   641
      (com.ms.dll.DllLib::int lstrlenA (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   642
      (com.ms.dll.DllLib::int read4 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   643
      (com.ms.dll.DllLib::int CoTaskMemAlloc (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   644
      (com.ms.dll.DllLib::void write8 (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   645
      (com.ms.dll.DllLib::int sizeOf0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   646
      (com.ms.dll.DllLib::int getSystemDefaultCharSize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   647
      (com.ms.dll.DllLib::void write8 (int int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   648
      (com.ms.dll.DllLib::int read4 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   649
      (com.ms.dll.DllLib::byte read1 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   650
      (com.ms.dll.DllLib::byte read1 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   651
      (com.ms.dll.DllLib::int lstrlen (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   652
      (com.ms.dll.DllLib::void CopyMemoryAnsi (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   653
      (com.ms.dll.DllLib::void CopyMemoryAnsi (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   654
      (com.ms.dll.DllLib::boolean isStruct (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   655
      (com.ms.dll.DllLib::boolean GlobalFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   656
      (com.ms.dll.DllLib::void internalAttemptCopyPtrToStruct (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   657
      (com.ms.dll.DllLib::int getLastError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   658
      (com.ms.dll.DllLib::void write4 (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   659
      (com.ms.dll.DllLib::void write4 (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   660
      (com.ms.dll.DllLib::unsigned short read2 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   661
      (com.ms.dll.DllLib::unsigned short read2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   662
      (com.ms.dll.DllLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   663
      (com.ms.dll.DllLib::void write1 (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   664
      (com.ms.dll.DllLib::void write1 (int int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   665
      (com.ms.dll.DllLib::boolean isStructCls (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   666
      (com.ms.dll.DllLib::void prelink (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   667
      (com.ms.dll.DllLib::void CopyMemoryUni (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   668
      (com.ms.dll.DllLib::void CopyMemoryUni (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   669
      (com.ms.dll.DllLib::void internalAttemptCopyStructToPtr (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   670
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   671
      (com.ms.dll.DllLib::void CopyWithSrcOffset (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   672
      (com.ms.dll.DllLib::void CopyWithSrcOffset (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   673
      (com.ms.dll.DllLib::void CopyWithSrcOffset (unsigned short[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   674
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   675
      (com.ms.dll.DllLib::void CopyWithSrcOffset (long[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   676
      (com.ms.dll.DllLib::void CopyWithSrcOffset (float[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   677
      (com.ms.dll.DllLib::void CopyWithSrcOffset (double[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   678
      (com.ms.dll.DllLib::void CopyWithSrcOffset (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   679
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   680
      (com.ms.dll.DllLib::int lstrlenW (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   681
      (com.ms.dll.DllLib::void CopyWithDstOffset (int byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   682
      (com.ms.dll.DllLib::void CopyWithDstOffset (int char[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   683
      (com.ms.dll.DllLib::void CopyWithDstOffset (int unsigned short[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   684
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   685
      (com.ms.dll.DllLib::void CopyWithDstOffset (int long[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   686
      (com.ms.dll.DllLib::int internalGetStructAddr (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   687
      (com.ms.dll.DllLib::int offsetOf (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   688
      (com.ms.dll.DllLib::int lstrcpy (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   689
      (com.ms.dll.DllLib::int sizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   690
      (com.ms.lang.RegKey::com.ms.lang.RegKeyEnumValue pRegEnumValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   691
      (com.ms.lang.RegKey::java.lang.String pRegQueryStringValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   692
      (com.ms.lang.RegKey::byte[] pRegQueryBinaryValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   693
      (com.ms.lang.RegKey::int pRegQueryIntValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   694
      (com.ms.lang.RegKey::void pRegSetStringValue (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   695
      (com.ms.lang.RegKey::void pRegSetIntValue (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   696
      (com.ms.lang.RegKey::void pRegSetBinaryValue (java.lang.String byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   697
      (com.ms.lang.RegKey::void pRegDeleteValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   698
      (com.ms.lang.RegKey::void pRegFlushKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   699
      (com.ms.lang.RegKey::void pRegDeleteKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   700
      (com.ms.lang.RegKey::void pRegOpenBaseKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   701
      (com.ms.lang.RegKey::void pRegOpenKey (com.ms.lang.RegKey java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   702
      (com.ms.lang.RegKey::int pRegQueryInfoKey (com.ms.lang.RegQueryInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   703
      (com.ms.lang.RegKey::void pRegUnLoadKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   704
      (com.ms.lang.RegKey::void pRegCreateKey (com.ms.lang.RegKey java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   705
      (com.ms.lang.RegKey::void pRegRestoreKey (java.lang.String boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   706
      (com.ms.lang.RegKey::void pRegLoadKey (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   707
      (com.ms.lang.RegKey::void pRegCloseKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   708
      (com.ms.lang.RegKey::java.lang.String pRegEnumKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   709
      (com.ms.lang.RegKey::void pRegReplaceKey (java.lang.String java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   710
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayouts (int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   711
      (com.ms.awt.peer.NativeServices::void jpegReadByte (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   712
      (com.ms.awt.peer.NativeServices::int getColourDataDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   713
      (com.ms.awt.peer.NativeServices::java.lang.String pGetFontEnumeratedFamily (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   714
      (com.ms.awt.peer.NativeServices::int pNewFontEnumeration ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   715
      (com.ms.awt.peer.NativeServices::int getScreenClipRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   716
      (com.ms.awt.peer.NativeServices::int pSetKeyboardLayout (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   717
      (com.ms.awt.peer.NativeServices::void ClipboardInit (com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   718
      (com.ms.awt.peer.NativeServices::void getDeviceCaps (int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   719
      (com.ms.awt.peer.NativeServices::void getAfcMetrics (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   720
      (com.ms.awt.peer.NativeServices::void setUserLocale (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   721
      (com.ms.awt.peer.NativeServices::void getDCDI (com.ms.awt.peer.DirectColourDataInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   722
      (com.ms.awt.peer.NativeServices::int pGetNumKeyboardLayouts ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   723
      (com.ms.awt.peer.NativeServices::void getIndexedColours (byte[] byte[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   724
      (com.ms.awt.peer.NativeServices::int getNativeFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   725
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayout ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   726
      (com.ms.awt.peer.NativeServices::int getSystemLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   727
      (com.ms.awt.peer.NativeServices::void caretSetPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   728
      (com.ms.awt.peer.NativeServices::java.lang.String getLogFontFromIUnknown (com.ms.com.IUnknown com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   729
      (com.ms.awt.peer.NativeServices::java.lang.String ClipboardGetText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   730
      (com.ms.awt.peer.NativeServices::int systemMetric (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   731
      (com.ms.awt.peer.NativeServices::void jpegInit (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   732
      (com.ms.awt.peer.NativeServices::void caretHide (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   733
      (com.ms.awt.peer.NativeServices::int chooseColor (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   734
      (com.ms.awt.peer.NativeServices::java.lang.String pGetKeyboardLayoutName (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   735
      (com.ms.awt.peer.NativeServices::int matchFontAndLanguage (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   736
      (com.ms.awt.peer.NativeServices::java.lang.String chooseFont (com.ms.awt.peer.LogFontX java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   737
      (com.ms.awt.peer.NativeServices::java.lang.String getSystemFont (int com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   738
      (com.ms.awt.peer.NativeServices::com.ms.com.IUnknown getIUnknownFromLogFont (java.lang.String com.ms.awt.peer.LogFontX))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   739
      (com.ms.awt.peer.NativeServices::void caretDispose (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   740
      (com.ms.awt.peer.NativeServices::void caretShow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   741
      (com.ms.awt.peer.NativeServices::void deleteObject (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   742
      (com.ms.awt.peer.NativeServices::void setDebugOutput (com.ms.awt.peer.COMPrintCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   743
      (com.ms.awt.peer.NativeServices::void jpegReadInt (com.ms.awt.peer.IjpegDecoderCallback byte[] int com.ms.awt.peer.jpegInfoHeader int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   744
      (com.ms.awt.peer.NativeServices::int getSystemColourValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   745
      (com.ms.awt.peer.NativeServices::void caretCreate (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   746
      (com.ms.awt.peer.NativeServices::void ClipboardSetText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   747
      (com.ms.awt.peer.NativeServices::void println (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   748
      (com.ms.security.SecurityClassLoader::boolean getSecureState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   749
      (com.ms.security.SecurityClassLoader::void setSecureState (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   750
      (com.ms.security.SecurityClassLoader::java.lang.Class internalDefineClass (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   751
      (com.ms.security.SecurityClassLoader::void markClass (java.lang.Class com.ms.security.PermissionSet java.security.Principal))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   752
      (com.ms.security.SecurityClassLoader::java.util.Hashtable getHashTable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   753
      (com.ms.security.auditing.SecurityAuditor::boolean isThreadAuditingEnabled ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   754
      (com.ms.security.auditing.SecurityAuditor::void disableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   755
      (com.ms.security.auditing.SecurityAuditor::void enableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   756
      (com.ms.security.auditing.SecurityAuditor::void initSecurityAuditor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   757
      (com.ms.security.PermissionDataSet::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   758
      (com.ms.security.PermissionDataSet::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   759
      (com.ms.lang.SystemX::int pAnsiToUnicode (byte[] char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   760
      (com.ms.lang.SystemX::int pQueryUnicodeToAnsi (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   761
      (com.ms.lang.SystemX::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   762
      (com.ms.lang.SystemX::boolean arrayCompare (java.lang.Object[] int java.lang.Object[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   763
      (com.ms.lang.SystemX::int pUnicodeToAnsi (char[] byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   764
      (com.ms.lang.SystemX::boolean isLocalCharDBCSLeadByte (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   765
      (com.ms.lang.SystemX::int pQueryAnsiToUnicode (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   766
      (com.ms.lang.SystemX::boolean isBaseDBCS ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   767
      (com.ms.lang.SystemX::java.lang.reflect.Method getMethod2 (java.lang.Class int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   768
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetSigner (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   769
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetCapabilities (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   770
      (com.ms.com._Guid::void IIDFromString (java.lang.String com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   771
      (com.ms.com._Guid::java.lang.String StringFromIID (com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   772
      (com.ms.security.auditing.PrintStreamAuditor::int GetModuleHandle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   773
      (com.ms.security.auditing.PrintStreamAuditor::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   774
      (com.ms.security.permissions.CustomPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   775
      (com.ms.security.permissions.CustomPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   776
      (com.ms.security.permissions.X509Signer::boolean pLoad (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   777
      (com.ms.packagemanager.PackageManager::java.lang.Class nativeFindClassInNamespace (java.lang.String java.lang.String java.lang.ClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   778
      (com.ms.packagemanager.PackageManager::java.lang.Object nativeGetPackage (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   779
      (com.ms.packagemanager.PackageManager::java.lang.String[] nativeGetBeansList ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   780
      (com.ms.packagemanager.PackageManager::com.ms.com.IStream nativeGetFileIStream (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   781
      (com.ms.packagemanager.PackageManager::java.lang.Class nativeFindClass (java.lang.String java.lang.String java.lang.ClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   782
      (com.ms.security.permissions.UserFileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   783
      (com.ms.security.permissions.UserFileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   784
      (com.ms.security.permissions.PropertyPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   785
      (com.ms.security.permissions.PropertyPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   786
      (com.ms.security.permissions.ClientStoragePermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   787
      (com.ms.security.permissions.ClientStoragePermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   788
      (com.ms.security.permissions.ExecutionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   789
      (com.ms.security.permissions.ExecutionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   790
      (com.ms.util.EventLog::boolean DeregisterEventSource (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   791
      (com.ms.util.EventLog::void reportEvent0 (unsigned short unsigned short int java.lang.String[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   792
      (com.ms.util.EventLog::int RegisterEventSource (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   793
      (com.ms.applet.BrowserAppletFrame::void signalViewChange (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   794
      (com.ms.applet.BrowserAppletFrame::java.lang.Object newInstance (int java.lang.Class boolean com.ms.security.PermissionSet))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   795
      (com.ms.applet.BrowserAppletFrame::void showSystemStatus (int int boolean java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   796
      (com.ms.applet.BrowserAppletFrame::com.ms.security.management.SecurityPolicy getSecurityPolicy0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   797
      (com.ms.applet.BrowserAppletFrame::void setDownloadState (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   798
      (com.ms.applet.BrowserAppletFrame::int GetSystemDefaultLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   799
      (com.ms.applet.BrowserAppletFrame::void requestResize (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   800
      (com.ms.applet.BrowserAppletFrame::void signalObjectLoadDone (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   801
      (com.ms.applet.BrowserAppletFrame::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   802
      (com.ms.applet.BrowserAppletFrame::void showStatus0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   803
      (com.ms.applet.BrowserAppletFrame::boolean checkGlobalOfflineMode0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   804
      (com.ms.applet.BrowserAppletFrame::void showDocument0 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   805
      (com.ms.security.permissions.SystemStreamsPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   806
      (com.ms.security.permissions.SystemStreamsPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   807
      (com.ms.security.permissions.FileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   808
      (com.ms.security.permissions.FileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   809
      (com.ms.com.ComLib::int newGCHandle (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   810
      (com.ms.com.ComLib::java.lang.Object derefGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   811
      (com.ms.com.ComLib::void dprinthelper (char[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   812
      (com.ms.com.ComLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   813
      (com.ms.com.ComLib::int jcdwClassSizeOf (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   814
      (com.ms.com.ComLib::int jcdwOffsetOf (java.lang.Object java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   815
      (com.ms.com.ComLib::int jcdwClassOffsetOf (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   816
      (com.ms.com.ComLib::boolean isJavaOwned (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   817
      (com.ms.com.ComLib::void brk (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   818
      (com.ms.com.ComLib::void setDataWrapperSize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   819
      (com.ms.com.ComLib::void brk (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   820
      (com.ms.com.ComLib::void setJCDWHomeThread (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   821
      (com.ms.com.ComLib::void propagateOwnership (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   822
      (com.ms.com.ComLib::void threadStartMTA (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   823
      (com.ms.com.ComLib::void IENVNextMarshalerJ2C (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   824
      (com.ms.com.ComLib::boolean supportsInterface (java.lang.Object com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   825
      (com.ms.com.ComLib::java.lang.Object ptrToStruct (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   826
      (com.ms.com.ComLib::int jcdwSizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   827
      (com.ms.com.ComLib::void declareMessagePumpThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   828
      (com.ms.com.ComLib::void IENVNextMarshalerC2J (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   829
      (com.ms.com.ComLib::void freeGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   830
      (com.ms.com.ComLib::boolean isEqualUnknown (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   831
      (com.ms.com.Dispatch::boolean NIsArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   832
      (com.ms.com.Dispatch::java.lang.String NInvokeReal (java.lang.Object com.ms.com._Guid java.lang.String int int int int com.ms.com.Variant[] com.ms.com.Variant[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   833
      (com.ms.com.Dispatch::void NGetIDsOfNamesReal (java.lang.Object com.ms.com._Guid int java.lang.String[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   834
      (com.ms.com.ComException::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   835
      (com.ms.com.Variant::int toInt ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   836
      (com.ms.com.Variant::double toDate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   837
      (com.ms.com.Variant::boolean toBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   838
      (com.ms.com.Variant::double toDouble ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   839
      (com.ms.com.Variant::long toCurrency ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   840
      (com.ms.com.Variant::void putVariantArray (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   841
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   842
      (com.ms.com.Variant::void putByteArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   843
      (com.ms.com.Variant::void putShortRef (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   844
      (com.ms.com.Variant::void putIntRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   845
      (com.ms.com.Variant::void putDoubleRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   846
      (com.ms.com.Variant::void putDateRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   847
      (com.ms.com.Variant::void putStringRef (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   848
      (com.ms.com.Variant::unsigned short getShortRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   849
      (com.ms.com.Variant::int getIntRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   850
      (com.ms.com.Variant::double getDoubleRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   851
      (com.ms.com.Variant::double getDateRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   852
      (com.ms.com.Variant::java.lang.String getStringRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   853
      (com.ms.com.Variant::java.lang.String internalToString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   854
      (com.ms.com.Variant::void initSafeArrayByRef (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   855
      (com.ms.com.Variant::java.lang.Object toCharArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   856
      (com.ms.com.Variant::java.lang.Object toDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   857
      (com.ms.com.Variant::byte toByte ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   858
      (com.ms.com.Variant::java.lang.Object getDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   859
      (com.ms.com.Variant::void putDispatch (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   860
      (com.ms.com.Variant::boolean getBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   861
      (com.ms.com.Variant::int toError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   862
      (com.ms.com.Variant::java.lang.Object toObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   863
      (com.ms.com.Variant::void initSafeArrayByVal (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   864
      (com.ms.com.Variant::java.lang.Object getObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   865
      (com.ms.com.Variant::void putObject (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   866
      (com.ms.com.Variant::com.ms.com.SafeArray toSafeArrayHelper (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   867
      (com.ms.com.Variant::void putFloatRef (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   868
      (com.ms.com.Variant::void putCurrencyRef (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   869
      (com.ms.com.Variant::void putErrorRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   870
      (com.ms.com.Variant::void putBooleanRef (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   871
      (com.ms.com.Variant::void putObjectRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   872
      (com.ms.com.Variant::void putByteRef (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   873
      (com.ms.com.Variant::java.lang.String getString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   874
      (com.ms.com.Variant::void putString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   875
      (com.ms.com.Variant::float getFloatRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   876
      (com.ms.com.Variant::long getCurrencyRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   877
      (com.ms.com.Variant::int getErrorRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   878
      (com.ms.com.Variant::boolean getBooleanRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   879
      (com.ms.com.Variant::java.lang.Object getObjectRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   880
      (com.ms.com.Variant::byte getByteRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   881
      (com.ms.com.Variant::float toFloat ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   882
      (com.ms.com.Variant::void putCharArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   883
      (com.ms.com.Variant::void putDispatchRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   884
      (com.ms.com.Variant::java.lang.Object getDispatchRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   885
      (com.ms.com.Variant::void putVariantArrayRef (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   886
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArrayRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   887
      (com.ms.com.Variant::void changeType (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   888
      (com.ms.com.Variant::void ncloneIndirect (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   889
      (com.ms.com.Variant::void nFinalize (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   890
      (com.ms.com.Variant::void nclone (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   891
      (com.ms.com.Variant::unsigned short toShort ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   892
      (com.ms.com.Variant::void putSafeArrayRefHelper (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   893
      (com.ms.com.Variant::com.ms.com.Variant[] toVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   894
      (com.ms.com.Variant::java.lang.Object toByteArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   895
      (com.ms.com.Variant::void TrueVariantClear ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   896
      (com.ms.awt.WToolkit::boolean MessageBeep (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   897
      (com.ms.applet.AppletPanel::boolean StartCodeDownload (int java.lang.String java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   898
      (com.ms.applet.AppletPanel::void securedCall0 (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   899
      (com.ms.applet.AppletPanel::com.ms.security.PermissionSet getDefaultPermissionsFromLoader (com.ms.vm.loader.URLClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   900
      (com.ms.dll.Win32Exception::int FormatMessage (int int int int java.lang.StringBuffer int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   901
      (com.ms.awt.WGuiCallback::boolean SetEvent (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   902
      (com.ms.awt.WGuiCallback::int CreateSemaphore (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   903
      (com.ms.awt.WGuiCallback::int ReleaseSemaphore (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   904
      (com.ms.awt.WGuiCallback::void userYield (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   905
      (com.ms.awt.WGuiCallback::int MsgWaitForMultipleObjects (int int[] boolean int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   906
      (com.ms.awt.WGuiCallback::int CreateEvent (int boolean boolean int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   907
      (com.ms.activeX.ActiveXToolkit::int GetSysColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   908
      (com.ms.awt.peer.NativeGraphics::void setPageDimension (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   909
      (com.ms.awt.peer.NativeGraphics::void setBkColour (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   910
      (com.ms.awt.peer.NativeGraphics::void getClipBounds (com.ms.awt.peer.NativeRect int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   911
      (com.ms.awt.peer.NativeGraphics::void pGetCharOutline (int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   912
      (com.ms.awt.peer.NativeGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   913
      (com.ms.awt.peer.NativeGraphics::void setXORMode (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   914
      (com.ms.awt.peer.NativeGraphics::int drawString (java.lang.String int int int int int int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   915
      (com.ms.awt.peer.NativeGraphics::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   916
      (com.ms.awt.peer.NativeGraphics::void drawArc (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   917
      (com.ms.awt.peer.NativeGraphics::void getInitialPageDimension (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   918
      (com.ms.awt.peer.NativeGraphics::void setVisRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   919
      (com.ms.awt.peer.NativeGraphics::void pSetForeground (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   920
      (com.ms.awt.peer.NativeGraphics::int pGetDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   921
      (com.ms.awt.peer.NativeGraphics::void drawPixels (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   922
      (com.ms.awt.peer.NativeGraphics::void drawPolygon (int[] int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   923
      (com.ms.awt.peer.NativeGraphics::void createFromImage (com.ms.awt.peer.INativeImage))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   924
      (com.ms.awt.peer.NativeGraphics::void endPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   925
      (com.ms.awt.peer.NativeGraphics::int pGetCharOutlineSize (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   926
      (com.ms.awt.peer.NativeGraphics::void pDrawBezier (int int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   927
      (com.ms.awt.peer.NativeGraphics::int drawBytes (byte[] int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   928
      (com.ms.awt.peer.NativeGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   929
      (com.ms.awt.peer.NativeGraphics::int drawChars (char[] int int int int int int int int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   930
      (com.ms.awt.peer.NativeGraphics::void drawT2Curve (float float float float float float int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   931
      (com.ms.awt.peer.NativeGraphics::void createFromPrintJob (java.lang.String com.ms.awt.peer.SPJData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   932
      (com.ms.awt.peer.NativeGraphics::void endPrintJob ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   933
      (com.ms.awt.peer.NativeGraphics::void pSetOrigin (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   934
      (com.ms.awt.peer.NativeGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   935
      (com.ms.awt.peer.NativeGraphics::void drawOval (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   936
      (com.ms.awt.peer.NativeGraphics::int pSetFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   937
      (com.ms.awt.peer.NativeGraphics::void setPaintMode (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   938
      (com.ms.awt.peer.NativeGraphics::void startPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   939
      (com.ms.awt.peer.NativeGraphics::void clearClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   940
      (com.ms.awt.peer.NativeGraphics::void createFromCopy (com.ms.awt.peer.INativeGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   941
      (com.ms.awt.peer.NativeGraphics::void scanLines (int int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   942
      (com.ms.awt.peer.NativeGraphics::void drawRoundRect (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   943
      (com.ms.awt.peer.NativeGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   944
      (com.ms.awt.peer.NativeGraphics::void clearRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   945
      (com.ms.awt.peer.NativeGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   946
      (com.ms.awt.peer.NativeGraphics::void createFromWindow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   947
      (com.ms.awt.peer.NativeGraphics::void drawPolyline (int[] int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   948
      (com.ms.awt.peer.NativeGraphics::void drawRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   949
      (com.ms.awt.peer.CToolkit::void callbackEventLoop (com.ms.awt.peer.IToolkitCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   950
      (com.ms.awt.peer.CToolkit::int getToolkitHwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   951
      (com.ms.awt.peer.CToolkit::int createCompHwnd (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   952
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionFont (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   953
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   954
      (com.ms.awt.peer.CNativeSystemIME::void setOpenStatus (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   955
      (com.ms.awt.peer.CNativeSystemIME::int getOpenStatus (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   956
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   957
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionResultString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   958
      (com.ms.net.wininet.WininetStreamHandlerFactory::int initNative (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   959
      (com.ms.com.SafeArray::void rawGetVariantAs (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   960
      (com.ms.com.SafeArray::void NSafeArrayInit (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   961
      (com.ms.com.SafeArray::float rawGetDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   962
      (com.ms.com.SafeArray::void NRawBoolCopyToJavaArray (int int boolean[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   963
      (com.ms.com.SafeArray::void validateArray (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   964
      (com.ms.com.SafeArray::void NSafeArrayCreateFromString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   965
      (com.ms.com.SafeArray::void rawSetString (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   966
      (com.ms.com.SafeArray::int getInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   967
      (com.ms.com.SafeArray::void setInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   968
      (com.ms.com.SafeArray::boolean getBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   969
      (com.ms.com.SafeArray::void setBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   970
      (com.ms.com.SafeArray::int computeOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   971
      (com.ms.com.SafeArray::void NSafeArrayNullInit ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   972
      (com.ms.com.SafeArray::void rawSetVariant (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   973
      (com.ms.com.SafeArray::float rawGetFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   974
      (com.ms.com.SafeArray::float getFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   975
      (com.ms.com.SafeArray::void setFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   976
      (com.ms.com.SafeArray::int computeOffset2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   977
      (com.ms.com.SafeArray::void rawSetDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   978
      (com.ms.com.SafeArray::java.lang.String asString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   979
      (com.ms.com.SafeArray::void NRawCopyToJavaArray (int int java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   980
      (com.ms.com.SafeArray::void NSafeArrayCreate (int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   981
      (com.ms.com.SafeArray::void NRawBoolCopyFromJavaArray (boolean[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   982
      (com.ms.com.SafeArray::void NSafeArrayDestroy (boolean boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   983
      (com.ms.com.SafeArray::int NSafeArrayCopy ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   984
      (com.ms.com.SafeArray::int rawGetInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   985
      (com.ms.com.SafeArray::boolean rawGetBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   986
      (com.ms.com.SafeArray::void rawSetFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   987
      (com.ms.com.SafeArray::java.lang.String rawGetString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   988
      (com.ms.com.SafeArray::int NTotalNumElems ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   989
      (com.ms.com.SafeArray::double getDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   990
      (com.ms.com.SafeArray::void setDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   991
      (com.ms.com.SafeArray::void Nreinit (com.ms.com.SafeArray))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   992
      (com.ms.com.SafeArray::int getPhysicalSafeArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   993
      (com.ms.com.SafeArray::int NgetdwordAt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   994
      (com.ms.com.SafeArray::void NRawCopyFromJavaArray (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   995
      (com.ms.com.SafeArray::void rawSetBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   996
      (com.ms.com.SafeArray::void rawSetInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   997
      (com.ms.awt.peer.CNativeComponent::void invalidate (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   998
      (com.ms.awt.peer.CNativeComponent::void hideModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   999
      (com.ms.awt.peer.CNativeComponent::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1000
      (com.ms.awt.peer.CNativeComponent::void setOnTop (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1001
      (com.ms.awt.peer.CNativeComponent::void registerDragDrop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1002
      (com.ms.awt.peer.CNativeComponent::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1003
      (com.ms.awt.peer.CNativeComponent::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1004
      (com.ms.awt.peer.CNativeComponent::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1005
      (com.ms.awt.peer.CNativeComponent::void setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1006
      (com.ms.awt.peer.CNativeComponent::void getBounds (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1007
      (com.ms.awt.peer.CNativeComponent::int gethwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1008
      (com.ms.awt.peer.CNativeComponent::void showModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1009
      (com.ms.awt.peer.CNativeComponent::void setCursor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1010
      (com.ms.awt.peer.CNativeComponent::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1011
      (com.ms.awt.peer.CNativeComponent::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1012
      (com.ms.awt.peer.CNativeComponent::void callDefWindowProc (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1013
      (com.ms.awt.peer.CNativeComponent::void registerCustomDropTarget (com.ms.com.IUnknown))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1014
      (com.ms.awt.peer.CNativeComponent::void setNoActivate (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1015
      (com.ms.awt.peer.CNativeComponent::void getPlaceOnScreen (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1016
      (com.ms.awt.peer.CNativeComponent::void beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1017
      (com.ms.awt.peer.CNativeComponent::void clippedReshape (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1018
      (com.ms.awt.peer.CNativeComponent::void setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1019
      (com.ms.awt.peer.CNativeComponent::void setIcon (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1020
      (com.ms.awt.peer.CNativeComponent::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1021
      (com.ms.awt.peer.CNativeComponent::void setFrameHost (com.ms.awt.peer.IBrowserAppletFrameCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1022
      (com.ms.awt.peer.CNativeComponent::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1023
      (com.ms.awt.peer.CNativeComponent::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1024
      (com.ms.awt.peer.CNativeComponent::void updateInsets (com.ms.awt.peer.NativeInsets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1025
      (com.ms.awt.peer.CNativeComponent::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1026
      (com.ms.awt.peer.CNativeComponent::void initFromJavaWindow (int com.ms.awt.peer.IComponentCallback com.ms.awt.peer.INativeComponent com.ms.awt.peer.IToolkit int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1027
      (com.ms.awt.peer.CNativeComponent::void init (int com.ms.awt.peer.IComponentCallback com.ms.awt.peer.INativeComponent com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1028
      (com.ms.awt.peer.CNativeComponent::void beginDrag (com.ms.awt.peer.INativeDragCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1029
      (com.ms.fx.RegionConverter::int computeNativeRegion (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1030
      (com.ms.fx.RegionConverter::int[] computeJavaRegion (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1031
      (com.ms.net.wininet.URLUtils::java.lang.String canonicalizeURL (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1032
      (com.ms.net.wininet.URLUtils::java.lang.String combineURL (java.lang.String java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1033
      (com.ms.awt.peer.NativeFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1034
      (com.ms.awt.peer.NativeFontMetrics::int stringWidth (java.lang.String int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1035
      (com.ms.awt.peer.NativeFontMetrics::int charsWidth (char[] int int int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1036
      (com.ms.awt.peer.NativeFontMetrics::java.lang.String init (com.ms.awt.peer.INativeGraphics int[] java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1037
      (com.ms.io.console.Console::int MessageBox (int java.lang.String java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1038
      (com.ms.awt.peer.NativeFileDialog::void show (com.ms.awt.peer.IFileDialogCallback java.lang.String java.lang.String java.lang.String int com.ms.awt.peer.INativeComponent int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1039
      (com.ms.security.management.SecurityZone::byte[] pLoadCustomPermissions (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1040
      (com.ms.awt.peer.NativeImage::int setBytePixelsDirected (int int int int com.ms.awt.peer.DirectColourModelData byte[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1041
      (com.ms.awt.peer.NativeImage::void create (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1042
      (com.ms.awt.peer.NativeImage::int setIntPixelsIndexed (int int int int int[] int int[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1043
      (com.ms.awt.peer.NativeImage::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1044
      (com.ms.awt.peer.NativeImage::int getIcon (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1045
      (com.ms.awt.peer.NativeImage::int setBytePixelsIndexed (int int int int int[] int byte[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1046
      (com.ms.awt.peer.NativeImage::void sendPixels (com.ms.awt.peer.SPData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1047
      (com.ms.awt.peer.NativeImage::void fillPixels (com.ms.awt.peer.SPData byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1048
      (com.ms.awt.peer.NativeImage::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1049
      (com.ms.awt.peer.NativeImage::void init (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1050
      (com.ms.awt.peer.NativeImage::int setIntPixelsDirected (int int int int com.ms.awt.peer.DirectColourModelData int[] int int com.ms.awt.peer.INativeImageBufferDone))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1051
      (com.ms.awt.peer.NativeImage::void imageDrawStretched (com.ms.awt.peer.INativeGraphics int int int int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1052
      (com.ms.awt.peer.NativeImage::int finish (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1053
      (com.ms.awt.peer.NativeImage::void imageDraw (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1054
      (com.ms.awt.peer.NativeResource::java.lang.String loadString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1055
      (com.ms.awt.peer.NativeResource::int openDialogFromID (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1056
      (com.ms.awt.peer.NativeResource::boolean attach (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1057
      (com.ms.awt.peer.NativeResource::void loadBytes (int int java.lang.String byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1058
      (com.ms.awt.peer.NativeResource::int getSize (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1059
      (com.ms.awt.peer.NativeResource::void detach ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1060
      (com.ms.awt.peer.NativeResource::int openDialogFromName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1061
      (com.ms.net.wininet.WininetURLConnection::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1062
      (com.ms.com.DispatchProxy::void finalize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1063
      (com.ms.com.DispatchProxy::void init (com.ms.com._Guid java.lang.reflect.Method[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1064
      (com.ms.net.wininet.WininetInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1065
      (com.ms.net.wininet.WininetInputStream::int read (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1066
      (com.ms.net.wininet.WininetInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1067
      (com.ms.net.wininet.WininetInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1068
      (com.ms.net.wininet.WininetInputStream::void connect (java.lang.String boolean boolean java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1069
      (com.ms.vm.loader.CabSignatureInfo::com.ms.vm.loader.CabSignatureInfo extractFromFile0 (java.lang.String com.ms.security.management.SecurityPolicy))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1070
      (com.ms.net.wininet.http.HttpInputStream::byte[] getResponseHeaders ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1071
      (com.ms.net.wininet.http.HttpInputStream::void close0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1072
      (com.ms.net.wininet.http.HttpInputStream::void connect (java.lang.String int java.lang.String boolean boolean boolean boolean byte[] byte[] java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1073
      (com.ms.vm.loader.CabCracker::int GetTempFileName (java.lang.StringBuffer java.lang.String int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1074
      (com.ms.vm.loader.CabCracker::void getBytes0 (int int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1075
      (com.ms.vm.loader.CabCracker::void cleanup ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1076
      (com.ms.vm.loader.CabCracker::int GetTempPath (int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1077
      (com.ms.vm.loader.CabCracker::void load0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1080
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1081
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1082
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1083
performance1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1084
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1085
     JAVA::BenchMark new loopmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1086
     JAVA::BenchMark new logicmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1087
     JAVA::BenchMark new sievemark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1088
     JAVA::BenchMark new methodmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1089
     JAVA::BenchMark new stringmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1090
     JAVA::BenchMark new newstringmark
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1091
     JAVA::BenchMark new neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1093
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1094
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1095
"
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1096
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1097
 linux:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1098
   P6/233 No JIT                 84         87        90          40          22                                       17              10
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1099
                      103       133        142       137          28          73       109    167     18    140
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1101
   P6/233 JIT                   479       2459       393         649          28                                       21              12
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1102
   P6/233 JIT         473      1805       3046       439         986          28                                       21              12
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1103
                      533      1808       3382       613        1003          25       105    143      1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1104
                      668      3330       3644       740
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1105
                      793      4116       3731      1243        1365         120       103     79      2
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1106
                      914      4480       4061                  2290          68       106    158     19     34
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1107
                      941      4607       4149      1238        2434          75       101    152     18     32
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1108
                                                                             591              164
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1109
                     1087                           1836                     800       110                   35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1110
                     1102      4592       4270      1844        2381         841       109    169     21     35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1111
                     1177      4608       4309      1810        2432         895       532    182     20     35
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1114
 w95
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1115
   P5/200 JIT          90        95         90        95         686          18        60     54      7
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1116
                      428      1657       2385       684         957          21        61     62      9
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1117
                      541      2886       2589       823         976          18        62     55      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1118
                      583      3062       2635       842         861         223        65     57      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1119
                      616      3075       2438      1081        1324         218        64     54      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1120
                      718      3138       2755      1085        1200         816        63     48      9      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1121
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1122
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1123
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1124
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1126
performance2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1127
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1128
     symantec benchmarks
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1129
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1131
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1132
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1133
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1134
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1135
   ST/X+J Linux
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1136
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1137
   No JIT          352767         354597         69585    43048  101638  28961 108839  48815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1138
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1139
   ST/X+J Linux
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1140
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1141
   JIT             128724         116810         20259    39733   83160  27613  52093  33166  43996  545554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1142
		   124744         101428         17239    10052    8264  14004  38821  23252  33709  374660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1143
   +IINC           120324                                  7265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1144
   +IADD op2       100173          90737         18128     6996    7423  17093  48559  44209  57056  390374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1145
   +ISUB op2                       90460         17547             5921                       57056  390461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1146
   +ICMPEQ/NE       99785          90147                           5792                43482  56486  388255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1147
   +ICMP            87398          78214         15784     7574    5628  12812  38481  24654  32252  302797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1148
   +IFICMPLE        84198          74928         13814     5650          11674         23241         293118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1149
   +IFICMPxx        76867          69738         12208                          37505  21973  32104  273569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1150
   +IFICMPEQ/NE                                                    5580  11202         21723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1151
   const IFICMPxx                                11856             5463  11032  37372                272726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1152
   +lea for add/sub
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1153
   +BALOAD                                       11700     4600    5015   9431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1154
   +BASTORE                                                3279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1155
   +CALOAD/CASTORE                                                        8907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1156
   regSave change   66119          60365          9997             4917  15386  37851  38202  50027  286497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1157
		    64858          58360          9476             4889  15001  37211  36288  48313  278478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1158
		    63146          55949          9302                   14899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1159
		    62970          56085          9352     3226    4837   8779  37573  22815  33899  241297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1160
   -O               43662          40292          7181     2530    4696   8170  34555  22116  32337  195539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1162
   +IALOAD          39162          36347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1163
   +IASTORE         32461          30663          4299             3667                19556  30563  166868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1165
   -IALOAD/IASTORE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1166
										34167  19347
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1167
										       19232  29726
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1168
										       18821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1169
   +AALOAD/BALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1170
		    41490          39527          6776     3315    4077   8443  33895  19152  28018  184693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1171
		    41291          37034          6593                          32682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1172
   +ATHROW                                                                6449                       180079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1173
   +IASTORE         38848          35601          6219             3796   6122         17869  30085  175106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1174
   IINC delayed code
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1175
   +ANEWARRAY                                              3263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1176
   +LADD/LSUB const 38719          35256                                  6062  27071                172859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1178
							   2837                 22835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1179
   +ISTORE into arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1180
									  3080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1181
   quick L2I for ints                                                     2774  21184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1182
   +*ASTORE / *ALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1183
    again                                                  1621    3654   1525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1184
   +CHECKCAST                                                      3574                       25810
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1185
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1186
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1187
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1188
   ST/X+J Win95
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1189
   200Mhz P5
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1190
   JIT              78490          77060         15220     4840    6370   9180  73160  36080         351700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1191
				   76900         13560             5500   9010         35200         348600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1192
										66080         69920  370750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1193
   +IADD non consts 76620          73210         13180     3790                 63550         58880  356900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1194
											      51740
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1195
		    77390          72450         12520     3900    6040   8950  62450  34330  57780  335810
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1196
		    77220          71950                           5270   8840                       338650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1197
		    72390          70690                                                      48010  327370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1198
		    74910          66740         11420                    8620  61730  33340  47350  313940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1199
   +xALOAD/JMP_ZERO
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1200
		    71740                                  2800
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1201
		    71460          65250         11540     2750                 62180  33840  50750  311660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1202
   +LCMP                                                                        59100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1203
   better abs(I)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1204
   +xALOAD/IF_ICMPx 66130          61520         12080     3300    5280   8190  56510  33830  50310  297150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1205
   elim dummy static                                               5210                       48270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1206
   methods                                                                                    44160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1207
		   119020         112440         19330     3070    4560   2640  56960  37730  52790  408540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1208
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1209
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1212
   Sun JDK         274625         244461         52676    50653   65183  26668  78133  28572  61608  882583
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1213
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1215
   Microsoft J++     9684           8452          2874     1733    3535   3665   3836   4746  25717   64242
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1216
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1218
   Symantec Cafe    14541          12198          3686     1922    4527   3325   3425  12969  26829   83422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1219
   JIT 1.02
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1220
   (90Mhz P5)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1222
   Symantec Cafe     8292           6970          2714     1613    3345   3235   2013   4516  13180   45878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1223
   JIT 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1224
   (90Mhz P5)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1225
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1227
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1228
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1230
   b := JAVA::BubbleSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1231
   b perform:#'setData(JJ)V' with:10000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1232
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1233
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1234
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1235
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1236
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1237
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1238
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1239
   b := JAVA::QSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1240
   b perform:#'setData(JJ)V' with:500000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1241
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1242
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1243
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1244
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1245
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1246
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1248
   t := JAVA::Tree new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1249
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1250
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1251
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1252
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1253
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1254
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1255
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1257
   t := JAVA::Array new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1258
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1259
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1260
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1261
   ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1262
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1264
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1266
!JavaVM class methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1267
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1268
boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1269
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1270
    Java initialize.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1271
    self initializeVM.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1272
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1273
    "Created: / 21-02-2012 / 18:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1274
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1275
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1276
compile:source selector:smalltalkSelector asJavaMethod:javaSelector fakedSource:fakedSource in:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1277
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1279
    |cloneCode|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1281
    (aClass implements:javaSelector) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1282
        Class packageQuerySignal answer:'__temporary__'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1283
        do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1284
            aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1285
                compile:source
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1286
                classified:'java support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1287
                logged:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1288
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1289
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1290
        cloneCode := aClass compiledMethodAt:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1291
        cloneCode source:fakedSource.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1293
        Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1294
            aClass removeSelector:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1295
            aClass addSelector:javaSelector withMethod:cloneCode.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1296
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1297
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1299
    "Created: / 5.11.1998 / 19:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1300
    "Modified: / 5.11.1998 / 19:37:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1301
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1303
deinitialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1304
    StandardThreadGroup := nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1305
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1306
    KnownWindows notNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1307
        KnownWindows do: [:v | v isTopView ifTrue: [ v destroy ] ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1308
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1309
    JavaWindowGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1310
    KnownWindows := nil.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1311
    OpenFileTable := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1312
    JavaMethods := nil.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1313
    SystemClassLoader := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1315
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1316
     JavaVM deinitialize"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1318
    "Created: / 03-01-1998 / 21:28:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1319
    "Modified: / 03-12-1998 / 20:33:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1320
    "Modified: / 28-01-2011 / 14:11:35 / Marcel Hlopko <hlopik@gmail.com>"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1321
    "Modified: / 16-11-2011 / 09:46:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1324
deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1325
    "deinstall additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1327
    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1328
        #'clone()Ljava/lang/Object;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1329
        #'equals(Ljava/lang/Object;)Z'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1330
        #'toString()Ljava/lang/String;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1331
        #'getClass()Ljava/lang/Class;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1332
     ) do:[:sel |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1333
        (Object implements:sel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1334
            Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1335
                Object removeSelector:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1336
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1337
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1338
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1340
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1341
     self deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1342
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1344
    "Created: / 4.2.1998 / 21:37:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1345
    "Modified: / 5.12.1998 / 15:27:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1346
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1347
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1348
flushClasses
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1349
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1350
    ClassRegistry notNil ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1351
        ClassRegistry flush
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1352
    ].
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1353
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1354
    "Created: / 30-10-2011 / 16:09:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1355
!
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1356
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1357
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1358
    DUMMY_LONG_HIGHWORD := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1359
    DUMMY_DOUBLE_HIGHWORD := 2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1360
    StandardThreadGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1361
    NoAudio := true.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1362
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1363
    "/ NoAudio := false.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1364
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
  1365
    JavaConsoleStream := "Transcript"Stdout.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1366
    FullExceptionTrace := StackTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1367
    WindowOPTrace := DrawOPTrace := EventTrace := ThreadTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1368
    MonitorTrace := ExceptionTrace := FileOpenTrace := FileIOTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1369
    ExceptionDebug := ExitDebug := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1370
    ExceptionDebugPatterns := Set new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1371
    WindowCreationTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1372
    FileOpenConfirmation := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1373
    SocketConnectConfirmation := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1374
    WindowOPTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1375
    MonitorTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1376
    ThreadTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1377
    UnhandledJavaExceptionSignal := (Signal new) mayProceed: true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1378
    UnhandledJavaExceptionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1379
        message: #unhandledJavaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1380
    UnhandledJavaExceptionSignal notifierString: 'unhandled java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1381
    JavaExceptionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1382
    JavaExceptionSignal nameClass: self message: #javaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1383
    JavaExceptionSignal notifierString: 'java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1384
    UnimplementedInstructionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1385
    UnimplementedInstructionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1386
        message: #unimplementedInstructionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1387
    UnimplementedInstructionSignal notifierString: 'unimplemented instruction'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1388
    UnimplementedNativeMethodSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1389
    UnimplementedNativeMethodSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1390
        message: #unimplementedNativeMethodSignal.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1391
    UnimplementedNativeMethodSignal
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1392
        notifierString: 'unimplemented native method'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1393
    BadMessageSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1394
    BadMessageSignal nameClass: self message: #badMessageSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1395
    BadMessageSignal notifierString: 'invalid message to JAVA object'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1396
    InternalErrorSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1397
    InternalErrorSignal nameClass: self message: #internalErrorSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1398
    InternalErrorSignal notifierString: 'internal error'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1399
    CallHandlerSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1400
    CallHandlerSignal nameClass: self message: #callHandlerSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1401
    CallHandlerSignal notifierString: 'internal signal'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1402
    StdinReplacementFileQuerySignal := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1403
    StdinReplacementFileQuerySignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1404
        message: #stdinReplacementFileQuerySignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1405
    StdinReplacementFileQuerySignal notifierString: 'asking for stdin stream'.
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1406
    JavaPrivilegedAccessQuery := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1407
    JavaPrivilegedAccessQuery defaultAnswer: false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1408
    AssertionsEnabled := true.
1069
d5d204ceb991 JavaVM: Added ClassRegistry initialization into JavaVM>>initialize
vranyj1
parents: 1063
diff changeset
  1409
    ClassRegistry := JavaClassRegistry new.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1410
    FinalizationEnabled := true.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1411
    EagerResolvingEnabled := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1412
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1413
    ObjectMemory addDependent: self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1414
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1415
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1416
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1417
     JavaVM initialize"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  1418
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1419
    "Created: / 02-01-1998 / 18:02:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1420
    "Modified: / 02-12-1998 / 23:02:22 / cg"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1421
    "Modified: / 09-10-2011 / 20:29:10 / Marcel Hlopko <hlopik@gmail.com>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1422
    "Modified: / 08-12-2011 / 21:06:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1423
    "Modified: / 17-08-2012 / 11:16:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1424
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1425
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1426
initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1427
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1429
    "/ since we use smalltalk Arrays for JavaArray, some
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1430
    "/ additional (java-) protocol is required.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1431
    "/ This is also useful, when Smalltalk objects are passed to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1432
    "/ java ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1433
    "/ We should implement all of the java.lang.Object protocol in
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1434
    "/ Object, to be on the bright side of life; more of this later ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1436
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1437
        compile:'__clone
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1438
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1439
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1440
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1441
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1443
    ^ self shallowCopy'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1444
        selector:#'__clone'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1445
        asJavaMethod:#'clone()Ljava/lang/Object;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1446
        fakedSource:'#''clone()Ljava/lang/Object;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1447
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1448
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1449
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1450
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1452
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1453
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1455
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1456
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1457
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1458
        compile:'__equals:arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1459
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1460
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1461
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1462
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1464
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1465
        selector:#'__equals:'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1466
        asJavaMethod:#'equals(Ljava/lang/Object;)Z'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1467
        fakedSource:'#''equals(Ljava/lang/Object;)Z''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1468
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1469
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1470
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1471
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1473
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1474
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1476
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1478
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1479
        compile:'__toString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1480
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1481
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1482
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1483
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1485
    ^ Java as_String:(self displayString)'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1486
        selector:#'__toString'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1487
        asJavaMethod:#'toString()Ljava/lang/String;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1488
        fakedSource:'#''toString()Ljava/lang/String;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1489
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1490
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1491
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1492
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1494
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1495
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1497
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1499
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1500
        compile:'__getClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1501
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1502
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1503
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1504
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1506
    ^ JavaVM javaClassObjectForClass:self class'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1507
        selector:#'__getClass'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1508
        asJavaMethod:#'getClass()Ljava/lang/Class;'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1509
        fakedSource:'#''getClass()Ljava/lang/Class;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1510
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1511
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1512
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1513
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1515
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1516
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1518
    "/ ------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1520
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1521
        compile:'__hashCode
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1522
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1523
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1524
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1525
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1527
    ^ self identityHash'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1528
        selector:#'__hashCode'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1529
        asJavaMethod:#'hashCode()I'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1530
        fakedSource:'#''hashCode()I''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1531
    "this is smalltalk code with a java selector ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1532
     (This source cannot be accepted in the browser,
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1533
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1534
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1536
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1537
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1540
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1541
     self initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1542
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1544
    "Modified: / 28-01-1997 / 19:38:58 / stefan"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1545
    "Modified: / 22-01-1998 / 21:23:40 / av"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1546
    "Created: / 04-02-1998 / 21:35:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1547
    "Modified: / 30-12-1998 / 21:07:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1548
    "Modified: / 25-10-2010 / 16:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1549
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1551
initializeBaseClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1552
    "load req'd base classes"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1553
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1554
    #( 'java.lang.Object'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1555
     'java.lang.Class'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1556
     'java.lang.String'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1557
     'java.lang.System' )
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1558
            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1559
                :cName |
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1560
                (self classForName: cName) isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1561
                    self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1562
                        warn: ('JavaVM: could not find required class: ' , cName asText allBold
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1563
                                , '\\Please check the Java settings (javaHome)') withCRs.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1564
                    AbortSignal raise.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1565
                    ^ self
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1566
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1567
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1568
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1569
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1570
     self initializeBaseClasses"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1571
    "Created: / 3.1.1998 / 21:13:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1572
    "Modified: / 23.12.1999 / 19:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1573
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1574
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1575
initializeClassReader
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1576
    "/Nothing to do"
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1577
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  1578
    JavaClassReader initialize.
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  1579
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1580
    "Created: / 06-09-2012 / 11:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1581
!
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1582
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1583
initializeJavaResources
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1584
    self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1585
    self initializePrimitiveClasses.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1586
    self initializeOpenFileTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1587
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1588
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1589
     JavaVM releaseAllMonitors"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1590
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1591
    "Created: / 02-01-1998 / 18:04:05 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1592
    "Modified: / 07-01-1998 / 22:58:10 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1593
    "Created: / 16-11-2011 / 14:23:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1594
    "Modified: / 17-08-2012 / 11:30:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1595
!
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1596
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1597
initializeMonitorTable
1553
ee3e63c04778 JavaVM: increased initial old space allocation, create huge LockTable to prevent its realloction
vranyj1
parents: 1552
diff changeset
  1598
    LockTable := WeakIdentityDictionary new:32000.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1599
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1600
    LockTableAccess name: 'JavaVM lock table access mutex'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1601
    Logger
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1602
        log: 'Initializing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1603
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1604
        facility: #JVM.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1605
    EnteredMonitorsPerProcess := IdentityDictionary new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1606
    Logger
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1607
        log: 'Initializing AcquiredMonitorsPerProcess'
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1608
        severity: #debug
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1609
        facility: #JVM.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1610
    AcquiredMonitorsPerProcess := IdentityDictionary new.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1611
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1612
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1613
     JavaVM initializeMonitorTable"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1614
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1615
    "Created: / 17-08-2012 / 11:30:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1616
!
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1617
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1618
initializeOpenFileTable
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1619
    OpenFileTable := OrderedCollection
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1620
                        with:Stdin
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1621
                        with:("JavaConsoleStream ?" Stdout)
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1622
                        with:("JavaConsoleStream ?" Stderr).
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1623
    OpenFileTableLock := RecursionLock new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1625
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1626
     JavaVM initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1627
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1628
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1629
    "Modified: / 06-08-1997 / 00:40:19 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1630
    "Created: / 02-01-1998 / 18:04:32 / cg"
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1631
    "Modified: / 30-07-2012 / 18:12:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1632
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1634
initializePrimitiveClasses
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1635
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1637
    "/    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1638
    "/        (#byte    'B' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1639
    "/        (#short   'S' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1640
    "/        (#int     'I' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1641
    "/        (#long    'J' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1642
    "/        (#boolean 'Z' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1643
    "/        (#char    'C' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1644
    "/        (#float   'F' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1645
    "/        (#double  'D' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1646
    "/        (#void    'V' 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1647
    "/    ) triplesDo:[:nm :sig :len |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1648
    "/        |jClass classInst|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1649
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1650
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1651
    "/        "/ create a javaClass for it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1652
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1653
    "/        jClass := Java at:'java.lang.Class'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1654
    "/        jClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1655
    "/            classInst := jClass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1656
    "/            JavaClasses at:nm put:classInst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1657
    "/            JavaClasses at:classInst put:nm.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1658
    "/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1659
    "/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1660
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1661
     self initializePrimitiveClasses"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1663
    "Modified: / 22-10-1998 / 01:56:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1664
    "Modified: / 20-12-2010 / 23:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1665
    "Modified: / 28-01-2011 / 14:57:38 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1666
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1668
initializeReflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1670
    Reflection := JavaVM::Reflection for: self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1671
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1672
    "Created: / 21-12-2010 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1673
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1674
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1675
initializeSimulatedLibs
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1676
    "return a collection of native libs which are considered
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1677
     being already loaded. (used with jdk < 1.2)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1679
    LibPath := #(
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1680
                        '__builtIn__'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1681
                        '/usr/local/lib'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1682
                        '/usr/local/lib/java'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1683
                ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1685
    SimulatedLibs := #(
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1686
                        '__builtIn__/net'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1687
                        '__builtIn__/awt'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1688
                        '__builtIn__/tawt'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1689
                        '__builtIn__/winawt'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1690
                        '__builtIn__/jpeg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1691
                        '__builtIn__/mmedia'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1692
                        '__builtIn__/zip'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1693
                        '__builtIn__/math'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1694
                        '__builtIn__/sysresource'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1695
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1696
                        "/ KAVA ...
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1697
                        '__builtIn__/agent'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1698
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1699
                        "/ MS-java ...
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1700
                        '__builtIn__/msawt'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1701
                        '__builtIn__/javart'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1702
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1703
                        "/ 1.1.8
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1704
                        '__builtIn__/jpeg_sun'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1705
                      ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1706
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1707
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1708
     self initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1709
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1711
    "Created: / 4.1.1998 / 19:05:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1712
    "Modified: / 17.11.1998 / 23:53:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1713
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1715
initializeSimulatedNativeLibs
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1716
    "return a collection of native libs which are considered
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1717
     being already loaded (used with jdk >= 1.2)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1718
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1719
    OperatingSystem isUNIXlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1720
        SimulatedNativeLibs := #( 'libawt.so' 'libnet.so' 'libcmm.so' 'libzip.so' 'libnio.so'
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1721
                                  'libmanagement.so'        "/ Management Beans - req'd by Tomcat
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1722
                                  'libjpeg.so' 'liblcms.so' "/ Some UI stuff - req'd by Tomcat !!?!!
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1723
                                  'libfontmanager.so'       "/ req'd by java.text.Bidi
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1724
                                    ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1725
        ^ self.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1726
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1727
    OperatingSystem isMSWINDOWSlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1728
        SimulatedNativeLibs := #( 'awt.dll' 'net.dll' 'cmm.dll' 'zip.dll' 'nio.so'
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1729
                                  'management.dll'          "/ Management Beans - req'd by Tomcat
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1730
                                  'fontmanager.dll'          "/ req'd by java.text.Bidi
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1731
                                ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1732
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1733
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1734
    SimulatedNativeLibs := #().
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1735
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1736
    "
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1737
     self initializeSimulatedNativeLibs"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1739
    "Modified: / 27-01-1998 / 18:43:10 / cg"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1740
    "Modified: / 03-11-2011 / 19:00:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1741
    "Modified: / 21-12-2011 / 23:03:35 / jv"
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1742
    "Modified: / 12-05-2012 / 12:52:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1745
initializeSimulatedNativeMemory
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1747
    SimulatedNativeMemory := JavaNativeMemory new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1749
    "Created: / 07-12-2010 / 21:07:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1750
    "Modified: / 07-12-2010 / 23:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1751
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1752
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1753
initializeSystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1754
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1755
    | java_lang_ClassLoader stx_libjava_ClassLoader |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1756
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1757
    java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1758
    (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1759
        SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1760
    ].
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1761
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1762
    stx_libjava_ClassLoader := JavaVM classForName: 'stx.libjava.ClassLoader'.
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1763
    (SmalltalkClassLoader := stx_libjava_ClassLoader instVarNamed:#scl) isNil ifTrue:[
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1764
        SmalltalkClassLoader := stx_libjava_ClassLoader perform: #'getSmalltalkClassLoader()Ljava/lang/ClassLoader;'
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1765
    ].
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  1766
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1767
    "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1768
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1769
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1770
initializeSystemPropertiesInto: props
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1771
    | cpu  cpu2  os |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1772
    "/ use JAVA compatible cpu-name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1773
    cpu := OperatingSystem getCPUType.
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1774
    cpu2 := cpu.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1775
    cpu = 'i386' ifTrue: [ cpu := 'ix86' ].
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1776
    (OperatingSystem getSystemInfo at: #machine) = 'x86_64' ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1777
        cpu2 := 'amd64'
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1778
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1779
    SimulatedOS notNil ifTrue: [ os := SimulatedOS ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1780
        os := OperatingSystem getOSType.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1781
        os := os asUppercaseFirst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1782
    ].
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1783
    props addPairsFrom: {
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1784
                'java.runtime.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1785
                'OpenJDK Runtime Environment'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1786
                'sun.boot.library.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1787
                OperatingSystem isMSWINDOWSlike ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1788
                    (Java release jreHome / 'bin') asString
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1789
                ] ifFalse: [ (Java release jreHome / 'lib' / cpu2) asString ].
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1790
                'java.vm.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1791
                Smalltalk versionString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1792
                'java.vm.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1793
                'eXept Software AG & SWING Research Group'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1794
                'java.vendor.url'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1795
                'http://www.exept.de & http://swing.fit.cvut.cz'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1796
                'path.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1797
                OperatingSystem pathSeparator asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1798
                'java.vm.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1799
                'Smalltalk/X'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1800
                'file.encoding.pkg'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1801
                'sun.io'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1802
                'sun.java.launcher'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1803
                'SUN_STANDARD'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1804
                'user.country'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1805
                'US'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1806
                'sun.os.patch.level'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1807
                'unknown'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1808
                'java.vm.specification.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1809
                'Java Virtual Machine Specification'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1810
                'user.dir'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1811
                Filename currentDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1812
                'java.awt.graphicsenv'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1813
                'sun.awt.X11GraphicsEnvironment'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1814
                'java.endorsed.dirs'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1815
                (Java release jreHome / 'lib' / 'endorsed') asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1816
                'os.arch'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1817
                cpu.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1818
                'java.io.tmpdir'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1819
                Filename tempDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1820
                'line.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1821
                Character cr asString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1822
                'java.vm.specification.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1823
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1824
                'os.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1825
                os.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1826
                'sun.jnu.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1827
                'UTF-8'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1828
                'java.library.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1829
                self defaultJavaLibraryPath.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1830
                'java.specification.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1831
                'Java Platform API Specification'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1832
                'java.class.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1833
                '50.0'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1834
                'sun.management.compiler'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1835
                'Smalltalk/X jinterpreter'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1836
                'os.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1837
                OperatingSystem isMSWINDOWSlike ifTrue: [
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1838
                    OperatingSystem getSystemInfo at: #release
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1839
                ] ifFalse: [ OperatingSystem getSystemInfo at: #version ].
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1840
                'user.home'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1841
                Filename homeDirectory pathName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1842
                'user.timezone'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1843
                ''.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1844
                'java.awt.printerjob'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1845
                'sun.print.PSPrinterJob'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1846
                'file.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1847
                'UTF-8'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1848
                'java.specification.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1849
                '1.6'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1850
                'java.class.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1851
                self defaultCLASSPATH.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1852
                'user.name'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1853
                OperatingSystem getLoginName.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1854
                'java.vm.specification.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1855
                '1.0'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1856
                 "'sun.java.command'            . 'SystemProperties' ."
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1857
                'java.home'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1858
                '/usr/lib/jvm/java-6-openjdk/jre'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1859
                'sun.arch.data.model'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1860
                '32'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1861
                'user.language'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1862
                Smalltalk language.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1863
                'java.specification.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1864
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1865
                'java.vm.info'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1866
                'Smalltalk/X 6.2.1'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1867
                'java.version'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1868
                '1.6'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1869
                'java.ext.dirs'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1870
                self defaultExtDirs.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1871
                'sun.boot.class.path'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1872
                self defaultSunBootLibraryPath.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1873
                'java.vendor'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1874
                'Sun Microsystems Inc.'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1875
                'file.separator'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1876
                Filename separatorString.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1877
                'java.vendor.url.bug'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1878
                'https://swing.fit.cvut.cz/projects/stx-libjava/newticket'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1879
                'sun.io.unicode.encoding'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1880
                'UnicodeLittle'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1881
                'sun.cpu.endian'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1882
                'little'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1883
                'sun.desktop'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1884
                'gnome'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1885
                'sun.cpu.isalist'.
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1886
                ''
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1887
            }.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1888
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1889
    "/ props at:'user.dir'           put:(Filename currentDirectory pathName).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1890
    "/props at:'awt.toolkit'        put:(self defaultWindowingToolKit).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1891
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1892
    props at: 'user.country' put: 'US'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1893
    props at: 'hotjava.home' put: (self defaultHotJavaHome).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1894
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1895
    "/ new with jdk 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1896
    "/ undocumented ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1897
    "/ suppress copyright view in appletViewer ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1898
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1899
    props at: 'appletviewer.version' put: '1.1'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1900
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1901
    "/ new with jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1902
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1903
    props at: 'java.awt.graphicsenv' put: 'sun.awt.X11GraphicsEnvironment'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1904
    props at: 'java.awt.fonts' put: '/usr/lib/X11/fonts'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1905
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1906
    "/ jws
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1907
    "/props at:'jws.home'             put:(self defaultJWSHome).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1908
    "/ new with jws 2.0 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1909
    "/props at:'jws.startcmd'         put:'jws.showwin.mainide'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1910
"/    props at: 'sun.misc.URLClassPath.debug' put: 'true'.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1911
1842
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1912
    "/ Java tests, sigh..."
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1913
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1914
    props at: 'libjava.tests.dir' put: ((Smalltalk getPackageDirectoryForPackage: self package) / 'tests') pathName.
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1915
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1916
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1918
    "
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1919
     self initializeSystemPropertiesInto:(Dictionary new)"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1920
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1921
    "Created: / 03-01-1998 / 14:26:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1922
    "Modified: / 27-01-2000 / 02:20:18 / cg"
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1923
    "Modified (format): / 03-11-2011 / 12:40:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1924
    "Modified: / 21-12-2011 / 23:05:11 / jv"
1706
88c3a7a9550b fixing classloader tests
hlopkmar
parents: 1702
diff changeset
  1925
    "Modified: / 13-09-2012 / 20:33:56 / m"
1842
1bc1508c05b9 - JavaVM
vranyj1
parents: 1824
diff changeset
  1926
    "Modified: / 30-11-2012 / 11:23:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1927
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1929
initializeVM
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1930
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1931
    OperatingSystem initResources.
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1932
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1933
    "Java requires a huge stack. Change default to 16 MB.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1934
     Observations:
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1935
     - Groovy 'rnd = new java.security.SecureRandom()' requires > 4MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1936
     - ant run on Groovy 1.8.7 source requires > 8MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1937
    "
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  1938
    "/Process defaultMaximumStackSize: ((1024 * 1024 * 16) max: Process defaultMaximumStackSize).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1939
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1940
    "Java Classes are huge and there is a (unfixed) bug in 2-phase oldspace
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1941
     compress, so try to avoid it by pre-allocating more oldspace."
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1942
    OldspaceIncreased ~~ true ifTrue:[
1607
c8924329bb5d Reserve at least 64MB oldspace for Java
vranyj1
parents: 1605
diff changeset
  1943
        ObjectMemory moreOldSpace: 64"MB"*(1024*1024).
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1944
        OldspaceIncreased := true.
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1945
    ].
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1946
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1947
    ClassRegistry := JavaClassRegistry for: self.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1948
    ClassLoaderQuerySignal := Query new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1949
    JavaObject autoload.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1950
    JavaContext autoload.
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1951
    MonitorTrace isNil ifTrue: [ self initialize ].
1468
6024720925ec - JavaVM
vranyj1
parents: 1461
diff changeset
  1952
    MonitorTraceId := 0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1953
    self initializeAdditionalJavaProtocol.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1954
    self initializeJavaResources.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1955
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1956
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1957
    Java markAllClassesUninitialized.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1958
    ZipCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1959
    ZipEntryCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1960
    ZipInflaters := OrderedCollection new.
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  1961
    FinalizationLobby := JavaFinalizationRegistry new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1962
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1963
    "/ force re-resolving;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1964
    "/ otherwise, class-inits would not be called
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1965
    "/ by resolver ... (sigh)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1966
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1967
    JavaNativeMethod flushAllCachedNativeMethods.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1968
    JavaMethod
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1969
        allSubInstancesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1970
            :m |
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1971
            m checked: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1972
            m code: nil.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1973
        ].
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1974
    ObjectMemory flushCaches.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1975
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1976
    "/ sigh - must flush inline caches.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1977
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1978
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1979
    self initializeSimulatedLibs.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1980
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1981
    "/ < jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1982
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1983
    self initializeSimulatedNativeLibs.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1984
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1985
    "/ >= jdk 1.2
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1986
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1987
    self initializeSimulatedNativeMemory.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  1988
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1989
    "/>  jdk 6
1698
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1990
d32a2a3dce36 - Some more support for non-Java extension methods.
vranyj1
parents: 1692
diff changeset
  1991
    self initializeClassReader.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1992
    self initializeOpenFileTable.
907
9ab15562799b JavaVM: Initialization fix
vranyj1
parents: 906
diff changeset
  1993
    self initializeReflection.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1994
    self initializeBaseClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1995
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1996
    Java initSystemClass.
1250
3904fc7212b4 forgotten methods :)
hlopkmar
parents: 1249
diff changeset
  1997
    Java initializeCurrentThread.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1998
    self initializeSystemClassLoader.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1999
    ObjectMemory addDependent: self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  2000
    StartupTime := OperatingSystem getOSTime.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2001
    FinalizationLobby startFinalizationProcessAt: 5.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2002
    PerfCounters := Performance for: self.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  2003
    ThreadInterrupts := Dictionary new.
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  2004
1754
b3cde0c1c2b1 - do not enforce Java native code optimization off
vranyj1
parents: 1749
diff changeset
  2005
    JavaNativeMethod allInstancesDo:[:e|e nCallsReset ].
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  2006
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2007
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2008
     JavaVM initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2009
     JavaVM initializeVM."
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2010
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2011
    "Created: / 03-01-1998 / 21:29:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2012
    "Modified: / 14-12-1999 / 18:58:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2013
    "Modified: / 15-10-2010 / 15:27:45 / Jan Kurs <kurs.jan@post.cz>"
1381
145a1ff31ee8 poor attempt to implement mcompile on javaMethod
hlopkmar
parents: 1377
diff changeset
  2014
    "Modified: / 24-02-2012 / 13:59:29 / Marcel Hlopko <hlopik@gmail.com>"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  2015
    "Modified: / 24-02-2012 / 14:37:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
  2016
    "Modified: / 06-09-2012 / 11:18:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2017
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2019
initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2020
    |uClass updater p|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2022
    uClass := JAVA::sun::awt::ScreenUpdater.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2023
    uClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2024
        updater := uClass instVarNamed:'updater'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2025
        updater notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2026
            p := self stProcessForJavaThread:updater
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2027
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2028
        (updater isNil or:[p isNil or:[p isDead]]) isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2029
            self initializeVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2030
            ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2031
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2032
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2034
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2035
        self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2036
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2038
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2039
     JavaVM initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2040
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2042
    "Created: / 15.1.1998 / 17:32:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2043
    "Modified: / 24.12.1999 / 02:18:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2044
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2045
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2046
reboot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2047
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2048
    Java flushAllJavaResources.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2049
    self boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2050
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2051
    "Created: / 21-02-2012 / 18:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2052
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  2053
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2054
reinitializeSockets
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2055
    "Reopens all server-sockets (i.e., listening sockets bound to a port).
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2056
     Called upon restarting from image"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2057
1635
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2058
    OpenFileTable notNil ifTrue:[
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2059
        OpenFileTable do:[:each|each isSocket ifTrue:[each reOpenIfPossible]]
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2060
    ].
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2061
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2062
    "Created: / 17-08-2012 / 15:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2063
!
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2064
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2065
reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2066
    |classesToInit|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2068
    self releaseAllJavaResources.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2070
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2072
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2073
    Java markAllClassesUninitialized.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2075
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2077
    classesToInit := JavaClass orderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2078
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2080
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2081
"/    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2083
    classesToInit do:[:jClass |
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2084
        jClass classInit
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2085
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2086
    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2087
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2088
    "Created: / 12-11-1998 / 15:37:52 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2089
    "Modified: / 17-11-1998 / 16:10:11 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2090
    "Modified: / 14-09-2011 / 22:06:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2091
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2093
reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2094
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2095
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2096
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2097
    (JavaEventQueueThread isNil or:[JavaEventQueueThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2098
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2099
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2101
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2102
     JavaVM reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2103
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2105
    "Created: / 24.11.1998 / 15:45:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2106
    "Modified: / 24.12.1999 / 02:36:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2107
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2109
releaseAllJavaResources
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2110
    self deinitialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2111
    FirstWindowCreationSemaphore := Semaphore new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2112
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2113
    LoadedLibs := nil.
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2114
    LoadedNativeLibs := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2115
    ImageStretchCache := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2116
    LastGraphics := LastGC := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2117
    SimulatedNativeMemory := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2118
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2119
    self terminateAllThreads.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2120
    "/self releaseAllMonitors.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2121
    self releaseAllWindows.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2122
    self releaseAllStreams.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2124
    "
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2125
     JavaVM releaseAllJavaResources"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2127
    "Created: / 07-01-1998 / 22:49:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2128
    "Modified: / 24-12-1999 / 02:33:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2129
    "Modified: / 17-12-2010 / 17:51:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2130
    "Modified: / 16-11-2011 / 20:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2131
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2132
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2133
releaseAllMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2134
    LockTable := WeakIdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2135
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2136
    LockTableAccess name: 'JavaVM lock table access mutex'.
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2137
    EnteredMonitorsPerProcess notNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2138
        EnteredMonitorsPerProcess
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2139
            keysAndValuesDo: [:p :value | value size > 0 ifTrue: [ self breakPoint: #mh ] ]
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2140
    ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2141
    self releaseLeftOverMonitors.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2142
    Logger
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2143
        log: 'Clearing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2144
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2145
        facility: #JVM.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2146
    EnteredMonitorsPerProcess := IdentityDictionary new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2147
    Logger
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2148
    log: 'Clearing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2149
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2150
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2151
        EnteredMonitorsPerProcess := IdentityDictionary new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2153
    "
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2154
     JavaVM releaseAllMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2155
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2156
    "Created: / 02-01-1998 / 18:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2157
    "Modified: / 07-01-1998 / 22:58:10 / cg"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2158
    "Modified: / 17-11-2011 / 17:00:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2159
    "Modified: / 13-04-2012 / 00:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2160
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2162
releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2163
    OpenFileTable notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2164
	OpenFileTable do:[:aStream |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2165
	    aStream notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2166
		aStream ~~ Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2167
		    aStream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2168
			aStream ~~ Stderr ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2169
			    aStream ~~ JavaConsoleStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2170
				aStream isExternalStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2171
				    aStream shutDown
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2172
				]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2173
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2174
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2175
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2176
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2177
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2178
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2179
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2180
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2181
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2182
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2183
     JavaVM releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2184
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2186
    "Created: / 7.1.1998 / 22:57:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2187
    "Modified: / 4.2.1998 / 19:53:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2188
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2190
releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2191
    KnownWindows notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2192
	KnownWindows do:[:aView |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2193
	    aView destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2194
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2195
	KnownWindows := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2196
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2198
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2199
     self releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2200
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2201
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2202
    "Created: / 7.1.1998 / 22:58:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2203
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2205
releaseLeftOverMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2206
    "release monitors held by dead processes"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2207
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2208
    | deadProcesses |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2209
    deadProcesses := IdentitySet new.
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2210
    EnteredMonitorsPerProcess notNil ifTrue: [
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2211
        EnteredMonitorsPerProcess keysAndValuesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2212
            :p :monitors |
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2213
            p isDead ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2214
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2215
                monitors do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2216
                    :mon |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2217
                    Logger
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2218
                        log: 'release leftover monitor ...'
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2219
                        severity: #info
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2220
                        facility: 'JVM'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2221
                    mon release
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2222
                ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2223
                deadProcesses add: p.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2224
            ]
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2225
        ].
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2226
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2227
    deadProcesses do: [:p | EnteredMonitorsPerProcess removeKey: p ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2228
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2229
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2230
     JavaVM releaseLeftOverMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2231
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2232
    "Created: / 08-01-1998 / 17:29:26 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2233
    "Modified: / 14-09-2011 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2234
    "Modified: / 29-11-2011 / 14:26:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2235
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2236
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2237
releasehSystemClassLoader
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2238
    SystemClassLoader := nil.
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2239
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2240
    "Created: / 30-07-2012 / 17:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2241
!
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2242
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2243
systemProperties
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2244
    |props|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2246
    props := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2247
    self initializeSystemPropertiesInto:props.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2248
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2250
    "Created: / 3.1.1998 / 14:25:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2251
    "Modified: / 3.1.1998 / 14:32:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2252
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2253
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2254
update:what with:aParameter from:changedObject
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2255
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2256
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2257
    #earlyRestart is send first, nothing has been setup yet.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2258
    (should be used to flush all device dependent entries)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2259
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2260
    what == #earlyRestart ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2261
        self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2262
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2263
        ^self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2264
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2265
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2266
    "#returnFromSnapshot is sent last (should be used to restart processes, reOpen
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2267
    Streams which cannot be automatically be reopened (i.e. Sockets, Pipes) and so on.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2268
    (Notice that positionable fileStreams are already reopened and repositioned)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2269
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2270
    what == #returnFromSnapshot ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2271
        self reinitializeSockets.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2272
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2273
        ^self
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2274
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2275
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2276
     JavaVM initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2277
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2278
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2279
    ObjectMemory dependents
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2280
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2281
    "Created: / 09-01-1998 / 10:30:13 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2282
    "Modified: / 06-11-1998 / 00:40:53 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2283
    "Modified: / 17-08-2012 / 15:35:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2284
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2286
!JavaVM class methodsFor:'Signal constants'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2288
badMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2289
    ^ BadMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2291
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2292
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2294
callHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2295
    ^ CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2297
    "Created: / 2.1.1998 / 18:07:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2298
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2299
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2300
classLoaderQuerySignal
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2301
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2302
    <resource: #obsolete>
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2303
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2304
    self breakPoint: #jv.
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2305
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2306
    ^JavaClassReader classLoaderQuerySignal
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2307
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2308
    "Modified: / 28-10-2011 / 22:11:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2309
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2310
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2311
internalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2312
    ^ InternalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2314
    "Created: / 2.1.1998 / 18:07:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2315
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2317
javaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2318
    "^ JavaExceptionSignal"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2319
    ^JavaError
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2321
    "Created: / 02-01-1998 / 18:05:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2322
    "Modified: / 01-03-2011 / 21:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2323
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2324
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2325
privilegedAccessQuery
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2326
    ^ JavaPrivilegedAccessQuery.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2327
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2328
    "Created: / 09-10-2011 / 20:24:49 / Marcel Hlopko <hlopik@gmail.com>"
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2329
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2330
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2331
stdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2332
    ^ StdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2334
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2335
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2337
unhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2338
    ^ UnhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2340
    "Created: / 2.1.1998 / 18:05:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2341
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2343
unimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2344
    ^ UnimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2345
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2346
    "Created: / 2.1.1998 / 18:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2347
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2349
unimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2350
    ^ UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2352
    "Created: / 2.1.1998 / 18:06:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2353
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2355
!JavaVM class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2356
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2357
addClass:aJavaClass definedBy:aJavaClassLoader
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2358
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2359
    self assert: aJavaClass classLoader == aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2360
    ^ ClassRegistry registerClass:aJavaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2361
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2362
    "Modified: / 23-10-2011 / 11:58:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2363
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2364
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2365
addSelector:newSelector withMethod:newMethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2366
    super addSelector:newSelector withMethod:newMethod.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2367
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2368
    "/JavaNativeMethod may not be loaded..."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2369
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2370
    (Smalltalk at:#JavaNativeMethod)
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2371
        ifNotNil:[JavaNativeMethod flushAllCachedNativeMethods].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2372
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2373
    "Created: / 24-12-1999 / 03:12:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2374
    "Modified: / 02-02-2011 / 04:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2375
    "Modified: / 02-02-2011 / 23:38:08 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2376
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2377
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2378
assertionsEnabled: aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2380
    AssertionsEnabled := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2381
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2382
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2383
        JavaVM assertionsEnabled: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2384
        JavaVM assertionsEnabled: false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2385
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2387
    "Created: / 24-11-2010 / 09:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2388
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2389
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2390
classRegistry
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2391
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2392
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2393
    "Created: / 21-10-2011 / 11:12:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2394
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2395
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2396
extClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2397
    ^ self systemClassLoader instVarNamed:#'parent'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2398
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2399
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2400
    "Created: / 02-11-2011 / 13:20:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2401
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2402
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2403
finalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2404
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2405
    ^FinalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2406
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2407
    "Created: / 14-11-2011 / 21:14:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2408
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2409
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2410
finalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2411
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2412
    ^FinalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2413
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2414
    "Created: / 14-11-2011 / 12:29:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2415
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2416
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2417
javaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2418
     ^ JavaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2420
    "Created: / 24.12.1999 / 02:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2421
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2423
javaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2424
     ^ JavaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2425
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2426
    "Created: / 8.1.1999 / 17:05:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2427
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2429
javaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2430
     ^ JavaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2432
    "Created: / 8.1.1999 / 17:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2433
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2434
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2435
performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2436
    "Return an object keeping Java performance counters"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2437
    ^ PerfCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2438
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2439
    "Modified: / 14-08-2012 / 00:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2440
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2441
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2442
reflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2443
    ^ Reflection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2445
    "Created: / 28-01-2011 / 15:09:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2446
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2447
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2448
registry
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2449
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2450
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2451
    "Modified (format): / 21-10-2011 / 11:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2452
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2453
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2454
smalltalkClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2455
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2456
    ^SmalltalkClassLoader
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2457
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2458
    "Created: / 22-08-2012 / 13:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2459
!
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2460
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2461
systemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2462
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2463
    ^SystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2464
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2465
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2466
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2467
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2468
useSmalltalkInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2469
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2470
    JavaMethod makeMetaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2472
    "Created: / 23-02-2011 / 12:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2473
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2475
useVMInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2476
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2477
    JavaMethod makeJavaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2479
    "Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2480
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2481
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2482
!JavaVM class methodsFor:'cache management'!
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2483
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2484
flushCachesFor: aClass
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2485
    "Flush all caches for given class, including JIT-compiled code.
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2486
     Called for allow for dynamic recompilation when a reference
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2487
     is resolved"
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2488
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2489
    aClass methodDictionary do:[:mthd|
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
  2490
        (mthd isJavaMethod and:[mthd isResolved not]) ifTrue:[
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
  2491
            "Stdout nextPutAll:'Flushing code for ' , mthd printString; cr."
1733
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2492
            mthd code: nil.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2493
            mthd checked: false.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2494
        ].
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2495
    ].
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2496
    ObjectMemory flushCachesFor: aClass.
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2497
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2498
    "Created: / 17-10-2012 / 20:22:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2499
! !
f344613d4283 - JavaVM
vranyj1
parents: 1729
diff changeset
  2500
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2501
!JavaVM class methodsFor:'class access'!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2502
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2503
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2504
    ^self reflection arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2505
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2506
    "Created: / 05-07-2012 / 23:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2507
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2508
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2509
at: aString
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2510
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2511
    ^ ClassRegistry classNamed: aString asInternalJavaClassName.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2512
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2513
    "Modified (comment): / 21-10-2011 / 12:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2514
    "Modified: / 23-10-2011 / 12:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2515
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2516
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2517
at: aString put: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2518
    self breakPoint: #mh.
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2519
    self breakPoint: #jv.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2520
    "dont use me anymore"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2521
    ^ ClassRegistry registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2522
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2523
    "Modified (comment): / 21-10-2011 / 12:14:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2524
    "Modified: / 23-10-2011 / 11:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2525
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2526
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2527
classForName: className
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2528
    "load class from registry - load using classLoader from query or JavaClassReader if absent"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2529
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2530
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2531
    ^ self classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2532
        definedBy: (JavaClassReader classLoaderQuerySignal query) "? SystemClassLoader".
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2533
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  2534
    "Modified: / 30-10-2011 / 17:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2535
    "Modified: / 02-11-2011 / 16:33:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2536
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2537
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2538
classForName: className definedBy: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2539
    "load class from registry - load using given classLoader if not nil"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2540
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2541
    | result |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2542
    result := self
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2543
                classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2544
                definedBy: classLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2545
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2546
                    | class  classLoaderEnsured |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2547
                    self assert: (className includes: $.) not.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2548
                    self booted ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2549
                        "class loaders allowed after vm boot, until then, only primordial"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2550
                        class := self usePrimordialCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2551
                        self assert: (class notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2552
                            description: 'Couldnt load class ' , className , ' while booting Java VM'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2553
                        class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2554
                    ] ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2555
                        self assert: (self booted)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2556
                            description: 'Java VM is not booted and we are not using primordial class loader to load: '
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2557
                                    , className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2558
                        (Java release bootClassPathIncludesClassNamed: className) ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2559
                            "we will use primordial class loader for classes in rt.jar etc"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2560
                            class := self usePrimordialCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2561
                            self assert: (class notNil)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2562
                                description: 'Class ' , className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2563
                                        , ' is supposed to be in boot classpath, but we couldnt load it'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2564
                            class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2565
                        ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2566
                            (Java release extDirsIncludesClassNamed: className) ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2567
                                class := self useExtCLToLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2568
                                self assert: (class notNil)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2569
                                    description: 'Class ' , className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2570
                                            , ' is supposed to be in java.ext,dirs, but we couldnt load it'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2571
                                class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2572
                            ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2573
                                "at this point, nil classLoader means use system class loader,
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2574
                                 in other words, at this point, we shouldnt use primordial cl at all"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2575
                                classLoader isNil ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2576
                                    self assert: (self systemClassLoader notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2577
                                        description: 'We needed system class loader, but its not loaded yet'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2578
                                    classLoaderEnsured := self systemClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2579
                                ] ifFalse: [ classLoaderEnsured := classLoader ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2580
                                class := self useUserDefinedCL: classLoaderEnsured
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2581
                                            toLoadClassNamed: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2582
                                class isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2583
                                    Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2584
                                        log: 'Even ' , classLoader printString , ' was not able to load class '
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2585
                                                , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2586
                                        severity: #warn
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2587
                                        facility: 'JVM'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2588
                                    nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2589
                                ] ifFalse: [ class ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2590
                            ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2591
                        ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2592
                    ]
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2593
                ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2594
    result isNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2595
        Logger
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2596
            log: 'Class ' , className , ' couldnt be loaded'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2597
            severity: #warn
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2598
            facility: 'JVM'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2599
    ] ifFalse: [ result := self makeArrayOf: result asDescribedBy: className. ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2600
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2601
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2602
    "Created: / 21-10-2011 / 12:01:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2603
    "Modified: / 30-10-2011 / 13:54:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2604
    "Modified: / 02-11-2011 / 16:49:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2605
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2606
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2607
classForName: className definedBy: classLoader ifAbsentPut: aBlock
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2608
    "load class from registry - if absent evaluate given block to get loaded class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2609
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2610
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2611
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2612
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2613
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2614
    result := ClassRegistry
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2615
                classForName: className asSlashedJavaClassName
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2616
                loader: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2617
                ifAbsentPut: aBlock.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2618
    result notNil ifTrue: [
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2619
        result := self makeArrayOf: result asDescribedBy: className.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2620
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2621
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2622
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2623
    "Created: / 21-10-2011 / 12:13:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2624
    "Modified: / 30-10-2011 / 22:04:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2625
    "Modified (format): / 02-11-2011 / 16:09:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2626
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2627
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2628
classNamed: className
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2629
    "Return class with given name loaded by current classloader or nil if class is not yet loaded"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2630
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2631
    ^ self classNamed: className definedBy: JavaClassReader classLoaderQuerySignal query.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2632
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2633
    "Modified: / 21-10-2011 / 12:09:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2634
    "Modified (comment): / 21-10-2011 / 13:34:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2635
    "Modified: / 28-10-2011 / 22:12:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2636
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2637
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2638
classNamed: className definedBy: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2639
    "Return class with given name loaded by given classloader or nil if class is not yet loaded"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2640
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2641
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2642
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2643
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2644
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2645
    result := ClassRegistry
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2646
                classForName: className asSlashedJavaClassName
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2647
                loader: classLoader
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2648
                ifAbsent: [ ^ nil ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2649
    ^ self makeArrayOf: result asDescribedBy: className.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2650
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2651
    "Created: / 21-10-2011 / 11:58:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2652
    "Modified: / 23-10-2011 / 12:01:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2653
    "Modified: / 01-11-2011 / 15:36:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2654
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2655
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2656
loadClassesIn: directory
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2657
"load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2658
The argument is string containing the name of the directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2659
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2660
Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2661
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2662
^ self loadClassesIn: directory matching: '*'.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2663
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2664
    "Modified: / 11-06-2011 / 13:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2665
    "Created: / 21-10-2011 / 12:40:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2666
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2667
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2668
loadClassesIn: directory matching: pattern
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2669
    "load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2670
     The arguments are a string containing the name of the directory
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2671
     and a class name pattern. Only classes matching the pattern are loaded.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2672
     class names are matched using String>>matches:.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2673
     ALL CLASSES ARE INSTALLED!!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2674
     Returns a set of loaded classes."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2675
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2676
    | dir  dirString  className  loadedClasses |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2677
    dir := directory asFilename asAbsoluteFilename.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2678
    loadedClasses := Set new.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2679
    Java addToClassPath: dir pathName.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2680
    JavaClassReader classLoaderQuerySignal answer: SystemClassLoader do:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2681
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2682
    dir
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2683
        recursiveDirectoryContentsAsFilenamesDo: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2684
            :filename |
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2685
            (filename isRegularFile and: [ filename suffix = #class ]) ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2686
                dirString := dir pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2687
                className := filename withoutSuffix pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2688
                className := className subString: dirString size + 2 to: className size.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2689
                className := className copyReplaceAll: (Filename separator) with: $..
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2690
                (className matches: pattern) ifTrue: [
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2691
                    (self classNamed: className) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2692
                        loadedClasses add: (self classForName:className).
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2693
                    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2694
                ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2695
            ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2696
        ].
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2697
    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2698
    ^ loadedClasses.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2699
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2700
    "Modified: / 21-10-2011 / 12:52:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2701
    "Modified: / 30-10-2011 / 14:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2702
! !
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2703
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2704
!JavaVM class methodsFor:'class loading'!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2705
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2706
useExtCLToLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2707
    | ecl  class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2708
    ecl := self extClassLoader.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2709
    self assert: (ecl notNil)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2710
        description: 'we want to use ExtClassLoader, but its not loaded yet'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2711
    class := ecl
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2712
                perform: #'loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2713
                with: (Java as_String: (className asDottedJavaClassName)).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2714
    self assert: (class notNil)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2715
        description: 'we tried to load class ' , className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2716
                , ' using ExtClassLoader and we failed:)'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2717
                class := JavaVM classForJavaClassObject: class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2718
                class classLoader: ecl.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2719
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2720
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2721
    "Created: / 02-11-2011 / 13:48:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2722
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2723
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2724
usePrimordialCLToLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2725
    | class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2726
    JavaClassReader classLoaderQuerySignal answer: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2727
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2728
            class := JavaClassReader readClass: className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2729
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2730
    ^ class
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2731
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2732
    "Modified: / 02-11-2011 / 17:28:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2733
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2734
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2735
useUserDefinedCL: classLoader toLoadClassNamed: className
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2736
    | classObject  class |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2737
    classObject := classLoader
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2738
                perform: #'loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2739
                with: (Java as_String: (className asDottedJavaClassName)).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2740
    class := self classForJavaClassObject: classObject.
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2741
    class javaMirror getClassLoader isNil ifTrue: [self breakPoint:#mh].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2742
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2743
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2744
    "Created: / 02-11-2011 / 16:20:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2745
    "Modified: / 22-08-2012 / 12:57:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2746
! !
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2747
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2748
!JavaVM class methodsFor:'debugging support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2749
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2750
disableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2751
    MonitorTrace := false.
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2752
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2753
    "Created: / 22-11-2011 / 10:29:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2754
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2755
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2756
enableMonitorTrace
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2757
    MonitorTrace := true.
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2758
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2759
    "Created: / 22-11-2011 / 10:29:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2760
    "Modified (format): / 07-04-2012 / 08:47:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2761
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2762
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2763
exceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2764
    ^ ExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2766
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2767
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2769
exceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2770
    ExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2772
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2773
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2775
exceptionDebugPatterns
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2777
    ^ ExceptionDebugPatterns
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2778
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2779
    ExceptionDebug must be set in order to ExceptionDebugPatterns work
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2780
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2781
    ExceptionDebug := true.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  2782
    ExceptionDebug := false.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2783
    ExceptionDebugPatterns removeAll.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2784
    ExceptionDebugPatterns add: 'java/lang/SecurityException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2785
    ExceptionDebugPatterns add: 'java/net/ConnectException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2786
    ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  2787
    ExceptionDebugPatterns add: 'java/lang/IllegalAccessException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2788
    ExceptionDebugPatterns add: 'java/lang/ClassNotFoundException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2789
    ExceptionDebugPatterns add: 'java/io/IOException'.
1387
4c609318f0e5 - Improvements in GroovyCompiler (error handling)
vranyj1
parents: 1384
diff changeset
  2790
    ExceptionDebugPatterns add: 'java/io/FileNotFoundException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2791
    ExceptionDebugPatterns add: 'java/io/EOFException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2792
    ExceptionDebugPatterns add: 'java/lang/NoSuchMethodException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2793
    ExceptionDebugPatterns add: 'java/lang/ArrayIndexOutOfBoundsException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2794
    ExceptionDebugPatterns add: 'java/lang/IllegalMonitorStateException'.
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2795
    ExceptionDebugPatterns add: 'org/xml/sax/SAXParseException'.
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2796
    ExceptionDebugPatterns add: 'org/apache/xerces/xni/parser/XMLParseException'.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  2797
    ExceptionDebugPatterns add: 'java/lang/InstantiationException'.
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  2798
    ExceptionDebugPatterns add: 'java/lang/RuntimeException'.
1709
94dcd942c81b - JavaVM
vranyj1
parents: 1708
diff changeset
  2799
    ExceptionDebugPatterns add: 'java/lang/ClassCastException'.
94dcd942c81b - JavaVM
vranyj1
parents: 1708
diff changeset
  2800
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2801
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2802
    ExceptionDebug := true.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2803
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2805
    "Created: / 25-02-2011 / 08:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2806
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2807
1544
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2808
!JavaVM class methodsFor:'debugging-dumping'!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2809
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2810
dumpOpenExternalStream: stream on: output
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2811
    output nextPutAll: stream class printString.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2812
    output space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2813
    OpenFileTable notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2814
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2815
        idx := OpenFileTable identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2816
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2817
            output nextPutAll:'JavaVM:OpenFileTable['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2818
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2819
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2820
    ZipCache notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2821
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2822
        idx := ZipCache identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2823
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2824
            output nextPutAll:'JavaVM:ZipCache['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2825
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2826
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2827
    stream isFileStream ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2828
        output nextPutAll: stream pathName ? '?'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2829
    ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2830
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2831
    "Created: / 23-07-2012 / 16:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2832
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2833
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2834
dumpOpenExternalStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2835
    ^self dumpOpenExternalStreamsOn: Stdout.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2836
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2837
    "Created: / 23-07-2012 / 16:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2838
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2839
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2840
dumpOpenExternalStreamsOn: aStream
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2841
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2842
    | nOpenStreams |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2843
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2844
    nOpenStreams := 0.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2845
    ExternalStream allSubInstancesDo:[:each|
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2846
        each isOpen ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2847
            nOpenStreams := nOpenStreams + 1.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2848
            self dumpOpenExternalStream: each on: aStream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2849
            aStream cr.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2850
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2851
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2852
    aStream nextPutLine:
1544
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2853
        ('SUMMARY: open=%1, java.io=%2, java.util.zip=%3'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2854
            bindWith: nOpenStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2855
                with: ((OpenFileTable ? #()) inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2856
                with: ((ZipCache ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2857
        )
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2858
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2859
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2860
        JavaVM dumpOpenExternalStreamsOn: Stdout
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2861
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2862
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2863
    "Created: / 23-07-2012 / 16:34:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2864
! !
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2865
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2866
!JavaVM class methodsFor:'defaults'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2867
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2868
audioEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2869
    ^ NoAudio not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2871
    "Created: / 18.7.1998 / 22:31:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2872
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2874
audioEnabled:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2875
    NoAudio := aBoolean not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2876
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2877
    "Created: / 18.7.1998 / 22:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2878
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2879
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2880
defaultCLASSPATH
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2881
    |s|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2883
    s := '' writeStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2884
    Java classPath
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2885
        do:[:p | s nextPutAll:p asString ]
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2886
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2888
    ^ s contents
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2889
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2890
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2891
     self defaultCLASSPATH
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2892
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2894
    "Created: / 03-01-1998 / 14:27:21 / cg"
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2895
    "Modified: / 27-07-2012 / 19:31:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2897
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2898
defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2899
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2900
    ^String streamContents:[:s|
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2901
        Java javaExtDirs do:[:dir|
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2902
            s nextPutAll: dir pathName.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2903
        ] separatedBy:[
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2904
            s nextPut: OperatingSystem pathSeparator.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2905
        ]
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2906
    ]
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2907
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2908
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2909
    JavaVM defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2910
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2911
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2912
    "Created: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2913
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2914
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2915
defaultHotJavaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2916
    ^ '/usr/local/java/hotjava'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2918
    "Modified: / 5.8.1997 / 04:13:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2919
    "Created: / 3.1.1998 / 14:27:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2920
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2922
defaultJAVAHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2923
    ^ Java javaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2924
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2925
    "Modified: / 6.8.1997 / 00:54:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2926
    "Created: / 3.1.1998 / 14:27:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2927
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2929
defaultJWSHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2930
    '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS' asFilename exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2931
	^ '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2932
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2933
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2934
    ^ '/usr/local/java/JWS'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2936
    "Created: / 3.1.1998 / 14:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2937
    "Modified: / 3.12.1998 / 14:54:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2938
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2940
defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2942
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2943
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2944
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2945
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2946
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2947
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2948
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2949
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2950
            add: Java release javaHome asFilename / 'jre' / 'bin' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2951
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2952
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2953
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2954
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2955
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2956
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2957
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2958
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2959
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2960
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2961
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2963
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2964
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2965
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2967
    "Created: / 10-12-2010 / 14:09:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2968
    "Modified: / 01-04-2011 / 18:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2969
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2971
defaultSunBootLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2972
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2973
    |s|
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2974
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2975
    s := '' writeStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2976
    Java release classPath
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2977
        do:[:p | s nextPutAll:p asString]
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2978
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2979
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2980
    ^ s contents
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2981
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2982
    "
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2983
        JavaVM defaultSunBootLibraryPath
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2984
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2986
    "Created: / 10-12-2010 / 14:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2987
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2989
defaultWindowingToolKit
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2990
    "/ prefer the windows toolkit ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  2991
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2992
    (self classForName: 'sun.awt.windows.WToolkit') notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2993
        ^ 'sun.awt.windows.WToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2994
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2995
    (Java classForName: 'sun.awt.motif.MToolkit') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2996
        self halt: 'MotifToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2997
        ^ 'sun.awt.motif.MToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2998
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2999
    self halt: 'TinyToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3000
    ^ 'sun.awt.tiny.TinyToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3001
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3002
    "/    ^ 'sun.awt.win32.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3003
    "/    ^ 'sun.awt.motif.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3004
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3005
     self defaultWindowingToolKit"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3006
    "Created: / 3.1.1998 / 14:27:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3007
    "Modified: / 27.1.1998 / 21:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3008
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3009
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3010
fileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3011
    ^ FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3013
    "Created: / 27.1.1999 / 18:55:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3014
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3016
fileAccessTrace:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3017
    FileAccessTrace := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3018
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3019
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3020
    "Modified: / 27.1.1999 / 18:55:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3021
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3023
fileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3024
    ^ FileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3026
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3027
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3029
fileOpenConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3030
    FileOpenConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3032
    "Created: / 19.10.1998 / 16:01:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3035
javaConsole:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3036
    JavaConsoleStream := aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3038
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3039
     JavaVM javaConsole:Transcript
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3040
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3042
    "Modified: / 6.8.1997 / 00:34:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3043
    "Created: / 3.1.1998 / 14:27:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3044
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3045
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3046
javaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3047
    ^ JavaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3049
    "Created: / 3.1.1998 / 14:32:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3050
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3052
nullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3053
    ^ NullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3055
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3056
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3058
nullPointerExceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3059
    NullPointerExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3060
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3061
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3062
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3064
socketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3065
    ^ SocketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3067
    "Created: / 19.10.1998 / 16:02:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3068
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3070
socketConnectConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3071
    SocketConnectConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3073
    "Created: / 19.10.1998 / 16:02:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3074
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3075
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3076
!JavaVM class methodsFor:'eager resolving'!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3077
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3078
disableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3079
    EagerResolvingEnabled := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3080
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3081
    "Created: / 08-12-2011 / 21:06:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3082
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3083
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3084
eagerResolvingEnabled
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3085
    ^ EagerResolvingEnabled.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3086
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3087
    "Created: / 08-12-2011 / 21:05:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3088
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3089
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3090
enableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3091
     EagerResolvingEnabled := true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3092
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3093
    "Created: / 08-12-2011 / 21:06:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3094
! !
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3095
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3096
!JavaVM class methodsFor:'fileIO'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3098
addOpenFile:aStream
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3099
    "Given a stream, adds it into the open file table. Returns a
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3100
     (fake) file descriptor number"
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3101
    | fd |
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3102
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3103
    OpenFileTableLock critical:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3104
        fd := OpenFileTable indexOf: nil.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3105
        fd ~~ 0 ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3106
            OpenFileTable at: fd put: aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3107
            fd := fd - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3108
        ] ifFalse:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3109
            OpenFileTable add:aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3110
            fd := OpenFileTable size - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3111
        ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3112
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3113
    ^fd
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3114
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3115
    "Created: / 02-01-1998 / 18:32:59 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3116
    "Modified (comment): / 18-07-2012 / 23:00:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3117
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3119
getOpenFileAt:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3120
    ^ OpenFileTable at:idx+1 ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3122
    "Created: / 2.1.1998 / 18:28:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3123
    "Modified: / 2.1.1998 / 18:33:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3124
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3126
setOpenFile:aStream at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3127
    OpenFileTable size < (idx+1) ifTrue:[
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3128
        OpenFileTable grow:idx+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3129
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3130
    OpenFileTable at:idx+1 put:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3131
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3132
"/    Do not shrink OpenFileTable now, make debugging easier
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3133
"/    aStream isNil ifTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3134
"/        [ OpenFileTable last isNil ] whileTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3135
"/            OpenFileTable removeLast.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3136
"/        ]
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3137
"/    ].
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3138
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3139
    "Modified: / 02-01-1998 / 18:33:21 / cg"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3140
    "Modified: / 14-11-2011 / 19:53:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3141
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3143
!JavaVM class methodsFor:'helpers'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3144
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3145
canCast: s to: t
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3146
    "Helper for _CHECKCAST:_:"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3147
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3148
    | sc  tc |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3149
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3150
    "Not specified in JVM spec, sigh"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3151
    s isJavaPrimitiveType ifTrue: [
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  3152
        "FIXME"
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  3153
        ^ s == t or:[(s isSubclassOf: t) or:[t isSubclassOf: s]]
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3154
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3155
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3156
     Java VM Spec, 3rd edition, p 280:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3157
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3158
     The following rules are used to determine whether an objectref that is not
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3159
     null can be cast to the resolved type: if S is the class of the object
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3160
     referred to by objectref and T is the resolved class, array, or interface type,
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3161
     checkcast determines whether objectref can be cast to type T as follows:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3162
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3163
     - If S is an ordinary (nonarray) class, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3164
     - If T is a class type, then S must be the same class as T, or a subclass
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3165
     of T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3166
     - If T is an interface type, then S must implement interface T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3167
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3168
    (s isJavaArrayClass not and: [ s isInterface not ]) ifTrue: [
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3169
        ^ (s includesBehavior: t).
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3170
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3171
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3172
     - If S is an interface type, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3173
     - If T is a class type, then T must be Object.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3174
     - If T is an interface type, then T must be the same interface as S or a
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3175
     superinterface of S.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3176
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3177
    s isInterface ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3178
        ^ t isInterface not
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3179
            ifTrue: [ t == (self classForName: 'java.lang.Object') ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3180
            ifFalse: [ s includesBehavior: t ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3181
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3182
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3183
     - If S is a class representing the array type SC[], that is, an array of com-
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3184
     ponents of type SC , then:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3185
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3186
    self assert: s isJavaArrayClass description: 'S should be array type'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3187
    sc := s javaComponentClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3188
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3189
     - If T is a class type, then T must be Object.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3190
    "
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  3191
    t isJavaClassType ifTrue: [ ^ t == (self classForName: 'java.lang.Object') ].
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3192
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3193
     - If T is an array type TC[], that is, an array of components of type TC ,
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3194
     then one of the following must be true:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3195
     - TC and SC are the same primitive type.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3196
     - TC and SC are reference types, and type SC can be cast to TC by
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3197
     recursive application of these rules.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3198
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3199
    t isJavaArrayClass ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3200
        tc := t javaComponentClass.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3201
        ^ tc isJavaPrimitiveType
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3202
            ifTrue: [ tc == sc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3203
            ifFalse: [ self canCast: sc to: tc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3204
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3205
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3206
     - If T is an interface type, T must be one of the interfaces implemented
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3207
     by arrays (JLS3 4.10.3).
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3208
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3209
    ((t name == #'java/lang/Cloneable')
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3210
        or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3211
    ^ false
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3213
    "Modified: / 09-01-1999 / 00:45:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3214
    "Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3215
    "Modified: / 21-10-2011 / 13:50:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  3216
    "Modified: / 24-02-2012 / 16:34:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3217
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3218
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3219
invoke: jmethod receiver: obj arguments: args context: context "of the native method" constructor: isConstructor
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3220
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3221
    "Common helper for invoking methods and ctors. Performs
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3222
     (type) checks and unboxing. Return (possibly boxed) return value."
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3223
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3224
    | method parameterTypes bargs bargss retval retcls bi executionEx |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3225
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3226
    method := self reflection methodForJavaConstructorObject: jmethod.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3227
    parameterTypes := jmethod instVarNamed: #parameterTypes.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3228
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3229
    (obj isNil and:[method isStatic not]) ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3230
        self throwNullPointerException.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3231
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3232
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3233
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3234
    "Possibly box/unbox arguments"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3235
    args notEmptyOrNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3236
        bargs := Array new: (bargss := method numArgs).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3237
        bi := 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3238
        1 to: args size do:[:i|
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3239
            | cls |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3240
            bi > bargss ifTrue:[
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3241
"/                self breakPoint: #jv.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3242
                self throwIllegalArgumentException: 'passed more arguments than expected'.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3243
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3244
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3245
            cls := self classForJavaClassObject: (parameterTypes at: i).
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3246
            cls isJavaPrimitiveType ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3247
                bargs at: bi put: (cls javaUnbox: (args at:i) onError:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3248
"/                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3249
                    self throwIllegalArgumentException:'illegal unbox'. ^nil
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3250
                ]).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3251
                (cls == LargeInteger or:[cls == Float]) ifTrue:[bi := bi + 1].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3252
            ] ifFalse:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  3253
                ((args at:i) isNil or:[(self canCast: (args at:i) class to: cls)]) ifFalse:[
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  3254
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3255
                    self throwIllegalArgumentException:'incomplatible argument types'. ^nil.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3256
                ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3257
                bargs at: bi put: (args at:i).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3258
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3259
            bi := bi + 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3260
       ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3261
        bi <= bargss ifTrue:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3262
"/             self breakPoint: #jv.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  3263
             self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3264
                              withMessage: 'not enough arguments'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3265
        ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3266
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3267
        bargs := #()
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3268
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3269
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3270
    "Check number of arguments"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3271
    method numArgs ~= bargs size ifTrue:[
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3272
        self throwIllegalArgumentException:'Invalid number of arguments'.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3273
        ^nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3274
    ].
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3275
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3276
    "Lookup the method here - hack, because of those stupid package private methods"
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3277
    method isStatic not ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3278
        method := JavaLookup instance
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3279
                    lookupMethodForSelector: method selector
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3280
                                 directedTo: obj class
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3281
                                        for: obj
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3282
                              withArguments: bargs
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3283
                                       from: context
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3284
                                        ilc: nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3285
        method isNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3286
            self throwIllegalArgumentException:'Message not understood - invalid class for ''this'''.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3287
            ^nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3288
        ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3289
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3290
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3291
    "Fire the method"
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3292
    [
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3293
        method isStatic ifTrue:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3294
            retval := method valueWithReceiver: method javaClass arguments: bargs.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3295
        ] ifFalse:[
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3296
            retval := method valueWithReceiver: obj arguments: bargs.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3297
        ].
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3298
    ] on: (self classForName:'java.lang.Throwable') do:[:ex |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3299
        executionEx := ex.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3300
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3301
    executionEx notNil ifTrue:[
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3302
        self throwInvocationTargetException: 'An exception occured during invocation' target: executionEx.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3303
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3304
    ].
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3305
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
  3306
    isConstructor ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3307
        retcls := jmethod instVarNamed: #returnType.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3308
        retcls notNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3309
            retcls := self classForJavaClassObject: retcls.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3310
            retcls ~~ UndefinedObject ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3311
                retval := retcls javaBox: retval.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3312
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3313
        ].
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3314
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3315
    ^retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3316
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3317
    "Created: / 05-07-2012 / 23:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3318
!
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3319
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3320
javaStringObjectForString:string
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3321
    self breakPoint:#mh info:'refactor my sender to use reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3322
    ^ self reflection javaStringObjectForString:string interned:false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3324
    "Created: / 22-11-2010 / 16:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3325
    "Modified: / 09-02-2011 / 00:47:49 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3326
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3327
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3328
javaStringObjectForString:string interned:intern
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3329
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3330
    ^self reflection javaStringObjectForString:string interned:intern.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3331
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3332
    "Created: / 22-11-2010 / 16:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3333
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3334
    "Modified: / 09-02-2011 / 01:04:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3335
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3336
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3337
javaThreadForSTProcess: stProcess
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3338
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3339
    result := Java threadForStProcess: stProcess ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3340
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3341
    ^ result.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3342
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3343
    "Modified: / 26-08-1997 / 19:56:31 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3344
    "Created: / 03-01-1998 / 01:53:41 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3345
    "Modified: / 09-12-2011 / 13:12:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3346
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3347
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3348
makeArrayOf: loadedJavaClass asDescribedBy: className
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3349
    | arrayClass  dimensions |
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3350
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3351
    arrayClass := loadedJavaClass.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3352
    dimensions := className occurrencesOf: $[.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3353
        arrayClass isJavaArrayClass ifTrue: [
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3354
        "is already array (primitive arrays case, like ByteArray etc)"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3355
        dimensions := dimensions - 1.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3356
    ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3357
    dimensions timesRepeat: [ arrayClass := arrayClass javaArrayClass. ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3358
        ^ arrayClass.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3359
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3360
    "Created: / 21-10-2011 / 12:18:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3361
    "Modified (format): / 23-10-2011 / 22:30:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3362
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3363
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3364
newThread: name
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3365
    | thread  threadClass  i |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3366
    threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3367
    thread := threadClass basicNew.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  3368
    thread instVarNamed: '_lockWord_' put: 0.
1533
ad8b4acdadc1 - JavaVM
vranyj1
parents: 1531
diff changeset
  3369
    thread instVarNamed: 'name' put: name. "/NOT a Java string, name instvar is char[]!!!!!!"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3370
    thread instVarNamed: 'priority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3371
        put: (threadClass instVarNamed: 'NORM_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3372
    thread instVarNamed: 'single_step' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3373
    thread instVarNamed: 'daemon' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3374
    thread instVarNamed: 'stillborn' put: 0.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3375
    thread instVarNamed: 'threadStatus' put: 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3376
    thread instVarNamed: 'target' put: nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3377
    thread instVarNamed: 'blockerLock' put:
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3378
        ((JavaVM classForName: 'java.lang.Object') basicNew
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3379
            instVarAt: 1 put: 0;
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3380
            yourself).
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3381
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3382
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3383
    "/ that on was only temporarily present in JDK1.1.3 (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3384
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3385
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3386
    (i := thread class instVarOffsetOf: 'initial_stack_memory') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3387
        thread instVarAt: i put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3388
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3389
    thread instVarNamed: 'group' put: (self standardThreadGroup).
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3390
    threadClass classLoader isNil ifTrue: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3391
        thread instVarNamed: 'contextClassLoader' put: self systemClassLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3392
    ] ifFalse: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3393
        thread instVarNamed: 'contextClassLoader' put: threadClass classLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3394
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3395
    ^ thread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3396
1151
vranyj1
parents: 1150
diff changeset
  3397
    "Created: / 03-01-1998 / 01:47:30 / cg"
vranyj1
parents: 1150
diff changeset
  3398
    "Modified: / 27-01-1998 / 00:54:33 / cg"
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3399
    "Modified: / 01-12-2011 / 17:43:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  3400
    "Modified: / 19-09-2012 / 16:06:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3401
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3402
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3403
stProcessForJavaThread: jThread
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3404
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3405
    result := Java threadsAt: jThread ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3406
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3407
    ^ result.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3408
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3409
    "Created: / 02-01-1998 / 21:48:27 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3410
    "Modified: / 03-01-1998 / 01:53:55 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3411
    "Modified: / 09-12-2011 / 13:12:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3412
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3414
standardThreadGroup
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3415
    | standardGroup  threadClass |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3416
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3417
    StandardThreadGroup isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3418
        threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3419
        standardGroup := (self classForName: 'java.lang.ThreadGroup') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3420
        standardGroup instVarNamed: 'parent' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3421
        standardGroup instVarNamed: 'name' put: (Java as_String: 'main').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3422
        standardGroup instVarNamed: 'maxPriority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3423
            put: (threadClass instVarNamed: 'MAX_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3424
        standardGroup instVarNamed: 'destroyed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3425
        standardGroup instVarNamed: 'daemon' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3426
        (standardGroup class instVarOffsetOf: 'vmAllowSuspension') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3427
            standardGroup instVarNamed: 'vmAllowSuspension' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3428
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3429
        standardGroup instVarNamed: 'nthreads' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3430
        standardGroup instVarNamed: 'ngroups' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3431
        standardGroup instVarNamed: 'groups' put: nil.
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3432
        StandardThreadGroup := standardGroup.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3433
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3434
    ^ StandardThreadGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3435
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3436
    "Created: / 03-01-1998 / 01:41:54 / cg"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3437
    "Modified: / 17-11-1998 / 22:55:30 / cg"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3438
    "Modified: / 25-04-2011 / 20:27:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3439
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3441
!JavaVM class methodsFor:'helpers - awt'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3443
commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3444
    |view x y width height ext menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3446
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3448
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3449
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3450
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3451
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3452
    ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3453
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3454
"/    'pReshape ' print. view print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3455
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3456
"/    ' extent: ' print. ext printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3457
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3458
	view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3459
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3460
	(view isTopView
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3461
	or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3462
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3463
	    "/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3464
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3465
	    menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3466
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3467
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3468
		height := height + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3469
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3470
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3472
	    "/ to prevent a view from not being visible/closable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3473
	    "/ in case Java goes mad ..
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3475
	    (width < 30
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3476
	    or:[height < 10]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3477
		"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3478
		width := 30.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3479
		height := 20.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3480
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3481
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3483
	    view extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3484
	    (view isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3485
		view preferredExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3486
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3488
	    "/ adjust non-resizable views min/max
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3490
	    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3491
		view minExtent notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3492
		    view minExtent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3493
		    view maxExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3494
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3495
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3496
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3497
	    (view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3498
	    and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3499
		menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3500
		menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3501
		    "/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3502
		    y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3503
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3504
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3505
		"/ post a configuration event
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3506
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3507
		    'JAVA: configure: need event' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3508
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3509
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3510
	    (x isNil or:[y isNil]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3511
		Transcript showCR:'bad args to reshape'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3512
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3513
		view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3514
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3515
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3516
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3518
    view isJavaView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3519
	view invalidate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3520
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3522
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3523
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3524
    "Created: / 4.1.1998 / 18:00:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3525
    "Modified: / 5.12.1998 / 13:34:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3526
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3528
createdWindowsView:aView for:aJavaPeer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3529
    "this is only sent with the sun.awt.windows toolkit"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3530
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3531
    aJavaPeer instVarNamed:'pData' put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3533
    JavaWindowGroup isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3534
	JavaWindowGroup := WindowGroup new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3535
	JavaWindowGroup isForModalSubview:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3536
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3537
    aView windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3538
    JavaWindowGroup addView:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3540
    KnownWindows isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3541
	KnownWindows := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3542
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3543
    KnownWindows at:aJavaPeer put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3545
    FirstWindowCreationSemaphore signalIf.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3546
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3547
"/'*** ' print. aJavaPeer print. ' -> ' print. aView printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3548
"/(aView isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3549
"/    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3550
"/].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3552
    "Created: / 4.1.1998 / 17:57:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3553
    "Modified: / 28.1.1998 / 22:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3554
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3556
gcForWGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3557
    |jGraphics gc orgX orgY trans tX tY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3559
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3560
    O_WGgraphics_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3561
	O_WGgraphics_pData := (jGraphics class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3562
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3563
    O_WGgraphics_originX isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3564
	O_WGgraphics_originX := (jGraphics class instVarOffsetOf:'originX').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3565
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3566
    O_WGgraphics_originY isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3567
	O_WGgraphics_originY := (jGraphics class instVarOffsetOf:'originY').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3568
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3569
    gc := jGraphics instVarAt:O_WGgraphics_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3570
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3571
    trans := gc translation.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3572
    tX := trans x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3573
    tY := trans y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3574
"/    tX := gc translationX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3575
"/    tY := gc translationY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3576
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3577
    orgX := jGraphics instVarAt:O_WGgraphics_originX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3578
    orgY := jGraphics instVarAt:O_WGgraphics_originY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3579
    ((orgX ~~ tX) or:[orgY ~~ tY]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3580
	gc translation:orgX@orgY
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3581
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3582
    ^ gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3584
    "Created: / 8.1.1998 / 00:16:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3585
    "Modified: / 23.12.1998 / 20:27:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3586
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3587
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3588
jPeerForView:aView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3589
    ^ KnownWindows keyAtValue:aView ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3591
    "Created: / 15.1.1998 / 13:48:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3592
    "Modified: / 15.1.1998 / 13:48:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3593
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3595
pReshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3596
    |jFramePeer view x y width height menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3597
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3598
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3599
    view := jFramePeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3601
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3602
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3603
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3604
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3605
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3606
"/    'pReshape ' print. view print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3607
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3608
"/    ' extent: ' print. width print. '/' print. height printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3610
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3611
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3612
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3613
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3614
    (view isTopView
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3615
    or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3616
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3617
	"/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3618
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3619
	menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3620
	menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3621
	    "/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3622
	    height := height + menu height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3623
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3624
	view extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3625
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3626
	(view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3627
	and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3628
	    menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3629
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3630
		"/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3631
		y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3632
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3633
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3634
	view origin:x@y extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3635
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3637
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3638
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3639
    "Created: / 7.1.1998 / 21:47:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3640
    "Modified: / 5.12.1998 / 13:47:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3641
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3642
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3643
replacementFontFor:name style:styleNr size:size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3644
    |font family style|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3645
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3646
    style := 'roman'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3647
    styleNr = 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3648
        style := 'roman'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3649
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3651
    font := Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3652
    font notNil ifTrue:[^ font].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3654
    name = 'Dialog' ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3655
        family := 'helvetica'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3656
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3657
        family := 'courier'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3658
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3660
    ^ Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3661
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3663
topViewsMenu:view
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3664
    |idx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3666
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3667
	view subViews size > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3668
	    (idx := view subViews findFirst:[:v | v isMemberOf:MenuPanel]) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3669
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3670
		^ view subViews at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3671
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3672
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3673
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3674
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3676
    "Modified: / 4.8.1997 / 01:23:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3677
    "Created: / 4.1.1998 / 18:01:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3678
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3680
viewForWPeer:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3681
    |jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3683
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3685
    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3686
    O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3687
	O_FramePeer_pNativeWidget := (jPeer class instVarOffsetOf:'pNativeWidget').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3688
	O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3689
	    O_FramePeer_pNativeWidget := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3690
	    O_FramePeer_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3691
		O_FramePeer_pData := (jPeer class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3692
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3693
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3694
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3695
    O_FramePeer_pNativeWidget > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3696
	"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3697
	^ jPeer instVarAt:O_FramePeer_pNativeWidget.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3698
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3699
    ^ jPeer instVarAt:O_FramePeer_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3701
    "Modified: / 19.11.1998 / 01:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3702
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3704
!JavaVM class methodsFor:'helpers - exceptions'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3705
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3706
throwAbstractMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3707
    ^ self throwExceptionClassName: 'java.lang.AbstractMethodError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3708
        withMessage: 'resolving a method ref failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3709
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3710
    "Created: / 11-04-2011 / 20:32:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3711
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3712
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3713
throwArrayIndexOutOfBoundsException: badIndex
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3714
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3715
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3716
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3717
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3718
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3719
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3720
    "Created: / 14.1.1998 / 21:36:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3721
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3722
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3723
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3724
throwArrayIndexOutOfBoundsException: theArray _: badIndex
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3725
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3726
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3727
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3728
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3729
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3730
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3731
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3732
    "Created: / 8.1.1999 / 15:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3733
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3734
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3735
throwArrayStoreException:badArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3736
    ^ self
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3737
        throwExceptionClassName:'java.lang.ArrayStoreException'
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3738
         withMessage:('bad array store: ' , badArray class printString)
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3739
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3740
    "Modified: / 23-06-2011 / 09:19:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3741
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3743
throwClassCastException
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3744
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3745
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3746
    ^ self throwExceptionClassName: 'java.lang.ClassCastException'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3747
        withMessage: 'cast failed'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3748
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3749
    "Modified: / 07-01-1998 / 15:25:35 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3750
    "Created: / 08-01-1999 / 18:55:31 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3751
    "Modified (format): / 23-10-2011 / 22:33:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3753
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3754
throwClassFormatError
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3755
    ^ self throwClassFormatError: 'Invalid class format'
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3756
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3757
    "Created: / 04-01-1998 / 22:26:09 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3758
    "Modified: / 10-11-1998 / 13:20:31 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3759
    "Created: / 08-08-2011 / 17:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3760
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3761
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3762
throwClassFormatError: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3763
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3764
        throwExceptionClassName:'java.lang.ClassFormatError'
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3765
        withMessage: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3766
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3767
    "Created: / 04-01-1998 / 22:26:09 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3768
    "Modified: / 10-11-1998 / 13:20:31 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3769
    "Created: / 27-10-2011 / 16:20:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3770
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3771
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3772
throwClassNotFoundException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3773
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3774
	throwExceptionClassName:'java.lang.ClassNotFoundException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3775
	withMessage:'no such class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3777
    "Created: / 4.1.1998 / 22:25:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3778
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3779
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3780
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3781
throwClassNotFoundException: className
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3782
    ^ self throwExceptionClassName: 'java.lang.ClassNotFoundException'
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3783
        withMessage: 'no such class: ' , className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3784
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3785
    "Created: / 4.1.1998 / 22:26:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3786
    "Modified: / 10.11.1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3787
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3788
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3789
throwDataFormatException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3790
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3791
        throwExceptionClassName:'java.util.zip.DataFormatException'
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3792
        withMessage: message
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3793
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3794
    "Created: / 16-08-2012 / 17:55:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3795
!
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3796
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3797
throwDivisionByZeroException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3798
    DivisionByZeroExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3799
	self halt:'division by zero'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3800
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3801
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3802
	throwExceptionClassName:'java.lang.ArithmeticException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3803
	withMessage:'division by zero'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3805
    "Created: / 8.1.1999 / 14:28:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3806
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3807
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3808
throwException: aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3809
    <resource: #skipInDebuggersWalkBack>
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3810
    | con  jMsg  msg  exClass  srchCon  handlerContext  handlerPC  method  pc  hPC handler |
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3811
    ExceptionTrace ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3812
        | tmpMessage |
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3813
        tmpMessage := aJavaException instVarNamed: 'detailMessage'.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3814
        tmpMessage isNil ifTrue: [ tmpMessage := '' ] ifFalse: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3815
            tmpMessage := Java as_ST_String: tmpMessage
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3816
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3817
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3818
            log: 'JAVA: exception: ' , aJavaException class fullName , ' ('
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3819
                    , tmpMessage , ')'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3820
            severity: #debug
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3821
            facility: 'JVM'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3822
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3823
    ExceptionDebug ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3824
        "/        self internalError:('JAVA: exception: ' , aJavaException class fullName).
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3825
        (ExceptionDebugPatterns isNilOrEmptyCollection
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3826
            or: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3827
                ExceptionDebugPatterns
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3828
                    anySatisfy: [:pattern | pattern match: aJavaException class fullName ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3829
            ])
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3830
                ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3831
                    self halt: ('JAVA: exceptionDebug: ' , aJavaException class fullName)
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3832
                ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3833
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3834
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3835
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3836
    "/ search stack for a javaContext which handles that exception
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3837
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3838
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3839
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3840
    srchCon := thisContext sender.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3841
    [ handlerContext isNil and: [ srchCon notNil ] ] whileTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3842
        (srchCon isJavaContext) ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3843
            method := srchCon method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3844
            pc := srchCon pc.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3845
            (hPC := method handlerFor: aJavaException at: pc) notNil ifTrue: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3846
                handlerPC := hPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3847
                handlerContext := srchCon
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3848
            ].
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3849
        ] ifFalse:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3850
            srchCon isHandleContext ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3851
                handler := srchCon receiver
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3852
                    handlerForSignal: aJavaException class context: srchCon originator:thisContext sender.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3853
                handler notNil ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3854
                    "We have found a Smalltalk handler for Java exception here"
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3855
                    handlerContext := srchCon.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3856
                ]
1098
vranyj1
parents: 1097
diff changeset
  3857
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3858
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3859
        srchCon := srchCon sender.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3860
    ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3861
    handlerContext isNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3862
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3863
        "/ no JavaHandler ... let smalltalk handle it
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3864
        "/
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3865
        exClass := aJavaException class.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3866
        exClass == (self classNamed: 'java/lang/ThreadDeath') ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3867
            "/mh 1.12.11 uncaught threadDeaths are not delegated out.. Thread.stop javadoc
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3868
            ^ self
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3869
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3870
        msg := 'Java ' , exClass name.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3871
        jMsg := aJavaException instVarNamed: 'detailMessage'.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3872
        jMsg notNil ifTrue: [ msg := msg , ': ' , (Java as_ST_String: jMsg). ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3873
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3874
        "/ for our convenience: skip ST contexts
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3875
        "/ (i.e. the handler or debugger will see the javaContext first )
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3876
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3877
        con := thisContext sender.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3878
        [ con isNil or: [ con isJavaContext ] ] whileFalse: [ con := con sender ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3879
        con isNil ifTrue: [ con := thisContext sender ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3880
        JavaUnhandledExceptionError
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3881
            raiseWith: aJavaException
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3882
            errorString: msg
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3883
            in: con.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3884
    ] ifFalse: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3885
        handlerContext isJavaContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3886
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3887
            "/ found a Java exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3888
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3889
            handlerContext setPC: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3890
            handlerContext exceptionArg: aJavaException pc: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3891
            handlerContext markForException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3892
            handlerContext unwindAndRestartForJavaException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3893
            self halt: 'should not be reached'.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3894
        ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3895
            | val |
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3896
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3897
            "/ found a Smalltalk exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3898
            "/
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3899
            "/ First, call evaluate the handler (see GenericException>>doCallHandler:
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3900
            val := handler valueWithOptionalArgument: aJavaException.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3901
            "handler fall through - is just like a #return:(aHandlerBlock value)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3902
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3903
            "Java exceptions cannot be proceed (by design)  but they might be
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3904
            rejected (rethrown) - this is not supported yet - we need
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3905
            to somehow indicate that (kind of reject token object returned
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3906
            from handler?)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3907
            thisContext evaluateUnwindActionsUpTo:handlerContext.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3908
            handlerContext return: val.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3909
        ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3910
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3911
    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3912
    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3913
    Processor activeProcess terminate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3914
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3915
    "
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3916
     ExceptionTrace := true"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3917
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3918
    "Created: / 07-01-1998 / 15:28:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3919
    "Modified: / 24-12-1999 / 02:33:25 / cg"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3920
    "Modified: / 01-12-2011 / 18:32:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3921
    "Modified: / 18-03-2012 / 21:47:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3922
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3923
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3924
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3925
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3926
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3927
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3928
    ex := exClass newWith_String: someMessage.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3929
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3930
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3931
    "Created: / 07-01-1998 / 15:25:09 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3932
    "Modified: / 14-01-1998 / 23:38:30 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3933
    "Modified: / 30-10-2011 / 17:44:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3934
    "Modified: / 02-11-2011 / 16:54:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3935
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3936
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3937
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage cause: cause
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3938
    | exClass  ex |
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3939
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3940
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3941
    ex := exClass newWith_String: someMessage.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3942
    ex instVarNamed: #cause put: cause.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3943
    ^ self throwException: ex
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3944
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3945
    "Created: / 05-07-2012 / 09:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3946
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3947
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3948
throwExceptionForFinallyIn: context
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3949
    "Evaluates a single finally block by fake-throwing
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3950
     FinallyToken - only evaluates a finally handler in
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3951
     given method, senders are not searched"
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3952
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3953
    |method pc handlerPC token returnContext |
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3954
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3955
    self assert: context isJavaContext.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3956
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3957
    method := context method.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3958
    pc := context pc.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3959
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3960
    token := JavaContext::FinallyToken new.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3961
    returnContext := thisContext sender sender sender.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3962
    returnContext selector == #return: ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3963
        token
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3964
            context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3965
            selector: #return:;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3966
            exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3967
            value: (returnContext argAt:1).
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3968
    ] ifFalse:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3969
        returnContext selector == #return ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3970
            token
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3971
                context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3972
                selector: #return;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3973
                exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3974
                value: nil.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3975
        ] ifFalse:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3976
            self error:'Unhandled case, inform libjava developers (JV in particular)' .
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3977
        ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3978
    ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3979
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
  3980
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  3981
    handlerPC := method handlerFor: nil at: pc.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3982
    handlerPC isNil ifTrue:[ ^ self ].
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3983
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3984
    context setPC: handlerPC.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3985
    context exceptionArg: token pc: handlerPC.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3986
    context markForException.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3987
    context restart.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3988
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3989
    self halt: 'should not be reached'.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3990
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3991
    "Created: / 03-04-2012 / 16:56:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3992
!
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3993
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3994
throwExceptionInInitializerError:className
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3995
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  3996
        throwExceptionClassName:'java.lang.ExceptionInInitializerError'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3997
        withMessage:'error when initializing class: ' , className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3998
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3999
    "Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4000
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4001
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4002
throwFileNotFoundException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4003
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4004
        throwExceptionClassName:'java.io.FileNotFoundException'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4005
        withMessage: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4006
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4007
    "Created: / 04-01-1998 / 22:26:09 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4008
    "Modified: / 10-11-1998 / 13:20:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4009
    "Created: / 10-08-2011 / 14:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4010
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4011
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4012
throwIOExceptionWithMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4013
    IOExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4014
	self halt:'IO Exception'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4015
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4016
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4017
	throwExceptionClassName:'java.io.IOException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4018
	withMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4020
    "Created: / 7.1.1998 / 10:34:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4021
    "Modified: / 7.1.1998 / 15:26:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4022
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4023
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4024
throwIllegalAccessError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4025
    ^ self throwExceptionClassName: 'java.lang.IllegalAccessError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4026
        withMessage: 'illegal access'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4027
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4028
    "Created: / 13-04-2011 / 23:07:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4029
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4030
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4031
throwIllegalAccessException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4032
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4033
	throwExceptionClassName:'java.lang.IllegalAccessException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4034
	withMessage:'illegal access'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4036
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4037
    "Created: / 14.1.1998 / 23:13:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4038
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4039
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4040
throwIllegalArgumentException: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4041
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4042
        throwExceptionClassName:'java.lang.IllegalArgumentException'
1151
vranyj1
parents: 1150
diff changeset
  4043
        withMessage: 'illegal argument: ', message
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4044
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4045
    "Modified: / 07-01-1998 / 15:25:35 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4046
    "Created: / 14-01-1998 / 23:13:44 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4047
    "Created: / 07-09-2011 / 14:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4048
!
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  4049
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4050
throwIllegalMonitorStateException: message
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4051
    self throwExceptionClassName: 'java.lang.IllegalMonitorStateException'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4052
            withMessage: message.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4053
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4054
    "Created: / 29-11-2011 / 14:21:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4055
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  4056
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4057
throwIncompatibleClassChangeError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4058
        ^ self throwExceptionClassName: 'java.lang.IncompatibleClassChangeError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4059
                withMessage: 'illegal change'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4060
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4061
    "Created: / 11-04-2011 / 20:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4062
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4063
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4064
throwInstantiationException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4065
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4066
	throwExceptionClassName:'java.lang.InstantiationException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4067
	withMessage:'cannot instantiate'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4069
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4070
    "Created: / 14.1.1998 / 23:15:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4071
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4073
throwInstantiationExceptionFor:aJavaClass
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4074
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4075
        throwExceptionClassName:'java.lang.InstantiationException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4076
        withMessage:('cannot instantiate: ' , aJavaClass javaName)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4077
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4078
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4079
    "Created: / 14.1.1998 / 23:17:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4080
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4081
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4082
throwInterruptedException: message
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4083
    ^ self throwExceptionClassName: 'java.lang.InterruptedException'
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4084
        withMessage:message
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4085
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4086
    "Created: / 30-11-2011 / 12:23:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4087
!
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4088
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4089
throwInvocationTargetException: message target: target
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4090
    | exClass  ex |
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4091
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4092
    exClass := self classForName: #'java/lang/reflect/InvocationTargetException' definedBy: nil.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4093
    ex := exClass newWith_String: message.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4094
    ex instVarNamed: #target put: target.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4095
    ^ self throwException: ex
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4096
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4097
    "Created: / 05-07-2012 / 17:48:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4098
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4099
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4100
throwLinkageError: message
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4101
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4102
        throwExceptionClassName:'java.lang.LinkageError'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4103
        withMessage: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4105
    "Modified: / 10-11-1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4106
    "Created: / 26-11-2010 / 11:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4107
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4108
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4109
throwNegativeArraySizeException: size
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4110
    ^ self
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4111
        throwExceptionClassName: 'java.lang.NegativeArraySizeException'
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4112
        withMessage: 'negative array size: ' , size printString
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4113
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4114
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4115
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4116
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4117
throwNoSuchFieldException
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4118
  ^ self throwExceptionClassName: 'java.lang.NoSuchFieldError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4119
        withMessage: 'looking up a field failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4120
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4121
    "Created: / 13-04-2011 / 12:16:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4122
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4123
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4124
throwNoSuchMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4125
      ^ self throwExceptionClassName: 'java.lang.NoSuchMethodError'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4126
              withMessage: 'looking up a method failed'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4127
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4128
    "Created: / 11-04-2011 / 20:33:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4129
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4130
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4131
throwNullPointerException
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4132
    NullPointerExceptionDebug == true ifTrue:[
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4133
        self halt:'Null Pointer exception'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4134
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4135
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4136
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4137
        throwExceptionClassName:'java.lang.NullPointerException'
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4138
        withMessage:'null pointer'
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4139
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4140
    "Created: / 09-01-1998 / 02:26:08 / cg"
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4141
    "Modified: / 28-01-1998 / 02:30:09 / cg"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4142
    "Modified: / 13-08-2011 / 01:10:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4143
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4144
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4145
throwNullPointerException:message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4146
    NullPointerExceptionDebug == true ifTrue: [
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4147
        self halt: 'Null Pointer exception'.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4148
    ].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4149
    ^ self throwExceptionClassName: 'java.lang.NullPointerException'
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4150
        withMessage: message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4151
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4152
    "Created: / 09-01-1998 / 02:26:08 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4153
    "Modified: / 28-01-1998 / 02:30:09 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4154
    "Modified: / 13-08-2011 / 01:10:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4155
    "Created: / 09-12-2011 / 11:13:40 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4156
!
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4157
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4158
throwNumberFormatException
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4159
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4160
	throwExceptionClassName:'java.lang.NumberFormatException'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4161
	withMessage:'bad number format'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4162
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4163
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4164
    "Created: / 11.1.1998 / 16:08:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4165
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4166
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4167
throwOutOfMemoryError
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4168
    ^ self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4169
        throwExceptionClassName:'java.lang.OutOfMemoryError'
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4170
        withMessage:'Oops, out of memory!!'
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4171
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4172
    "Created: / 04-01-1998 / 22:26:09 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4173
    "Modified: / 10-11-1998 / 13:20:31 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4174
    "Created: / 30-08-2011 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4175
!
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4176
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4177
throwSecurityException
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4178
    JavaClassReader classLoaderQuerySignal
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4179
        answer:  nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4180
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4181
            ^ self throwExceptionClassName: 'java.lang.SecurityException'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4182
                withMessage: 'trying to load class from java.lang using different class loader?'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4183
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4184
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4185
    "Created: / 01-11-2011 / 15:55:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4186
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4187
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4188
throwSecurityExceptionWith: message
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4189
    JavaClassReader classLoaderQuerySignal answer: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4190
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4191
            ^ self throwExceptionClassName: 'java.lang.SecurityException'
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4192
                withMessage: 'trying to load class from java.lang: ' , message.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4193
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4194
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4195
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4196
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4197
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4198
throwSocketException: message
1084
vranyj1
parents: 1083
diff changeset
  4199
    JavaClassReader classLoaderQuerySignal answer: nil
vranyj1
parents: 1083
diff changeset
  4200
        do: [
vranyj1
parents: 1083
diff changeset
  4201
            ^ self throwExceptionClassName: 'java.net.SocketException'
vranyj1
parents: 1083
diff changeset
  4202
                withMessage: message
vranyj1
parents: 1083
diff changeset
  4203
        ].
vranyj1
parents: 1083
diff changeset
  4204
vranyj1
parents: 1083
diff changeset
  4205
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4206
    "Created: / 03-11-2011 / 23:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4207
!
vranyj1
parents: 1083
diff changeset
  4208
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4209
throwZipException
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4210
    ^ self throwZipException:'error in opening zip file'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4212
    "Created: / 27-03-2011 / 16:25:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4213
    "Modified: / 20-07-2012 / 19:15:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4214
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4215
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4216
throwZipException: message
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4217
    ^ self throwExceptionClassName: 'java.util.zip.ZipException'
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4218
           withMessage: 'error in opening zip file'.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4219
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4220
    "Created: / 20-07-2012 / 19:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4221
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4223
!JavaVM class methodsFor:'helpers - io'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4224
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4225
anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4226
    |jStream fileNo file|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4227
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4228
    jStream := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4229
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4230
    file := self validateFile:jStream.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4231
    file == Stdin ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4232
        file := StdinReplacementFileQuerySignal raiseRequest.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4233
        file isNil ifTrue:[
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4234
            file := Stdin
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4235
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4236
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4237
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4238
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4240
    (file ~~ Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4241
    and:[file ~~ Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4242
    and:[file ~~ Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4243
    and:[file ~~ Transcript]]]) ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4244
        file close.
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4245
    ] ifFalse:[
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4246
        self breakPoint: #jv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4247
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4248
    self setOpenFile:nil at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4250
    fileNo := jStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4251
    fileNo isInteger ifFalse:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4252
        "/ JDK 1.1.3
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4253
        fileNo instVarNamed:'fd' put:0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4254
    ] ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4255
        "/ JDK 1.0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4256
        jStream instVarNamed:'fd' put:0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4257
    ].
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4258
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4259
    "Created: / 04-02-1998 / 15:22:03 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4260
    "Modified: / 14-10-1998 / 15:10:07 / cg"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4261
    "Modified: / 28-07-2012 / 02:45:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4262
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4264
anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4265
    |bytes offset count stream nRead|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4267
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4268
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4269
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4271
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4273
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4274
    bytes class isBytes ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4275
        self halt.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4276
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4277
    stream == Stdin ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4278
        stream := StdinReplacementFileQuerySignal raiseRequest.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4279
        stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4280
            ^ -1 "/ 0  EOF
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4281
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4282
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4284
    FileIOTrace ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4285
        ('JAVA: read ' , count printString , ' bytes from ' , stream pathName) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4286
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4288
    stream isPositionable ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4289
        "/ mhmh - some kind of socket or pipe
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4290
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4291
        stream readWait.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4292
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4293
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4294
    count == 0 ifTrue:[^0].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4296
    Stream readErrorSignal handle:[:ex |
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4297
        nRead := -1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4298
    ] do:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4299
        nRead := stream nextAvailableBytes:count into:bytes startingAt:offset+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4300
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4301
    nRead == 0 ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4302
        stream atEnd ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4303
            FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4304
                ('JAVA: at EOF ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4305
            ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4306
            ^ -1
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4307
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4308
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4309
    count ~~ nRead ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4310
        FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4311
            ('JAVA: only got ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4312
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4313
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4314
    ^ nRead
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4315
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4316
    "Created: / 04-02-1998 / 15:20:00 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4317
    "Modified: / 10-11-1998 / 19:56:47 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4318
    "Modified: / 10-08-2011 / 21:35:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4319
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4321
anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4322
    |bytes offset count stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4324
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4325
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4326
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4328
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4330
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4331
        stream isFileStream ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4332
            Logger log: ('write ' , count printString , ' bytes to ' , stream pathName) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4333
        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4334
            stream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4335
                stream ~~ Stderr ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4336
                    Logger log: ('write ' , count printString , ' bytes to ' , stream displayString) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4337
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4338
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4339
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4340
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4342
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4343
    Stream writeErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4344
        ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4345
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4346
        Socket brokenConnectionSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4347
            ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4348
        ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4349
            stream isBinary ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4350
                stream nextPutBytes:count from:bytes startingAt:offset+1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4351
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4352
                stream nextPutAll: (bytes asString copyFrom: offset + 1 to: offset + count).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4353
            ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4354
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4355
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4356
        stream == Transcript ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4357
            Transcript endEntry
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4358
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4359
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4361
    "Created: / 04-02-1998 / 15:23:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4362
    "Modified: / 16-02-1999 / 11:32:45 / cg"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4363
    "Modified: / 14-09-2011 / 22:05:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4364
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4366
checkWritePermissionOfDirectory:dir message:msg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4367
    |answer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4369
    (PermittedDirectories notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4370
    and:[PermittedDirectories includes:dir]) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4371
	FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4372
	    answer := Dialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4373
		    confirmWithCancel:msg withCRs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4374
			       labels:#('no' 'grant')
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4375
			       values:#(false true)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4376
			      default:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4377
	    answer == false ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4378
		^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4379
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4381
	    (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir pathName , ''') ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4382
	    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4383
		PermittedDirectories isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4384
		    PermittedDirectories := Set new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4385
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4386
		PermittedDirectories add:dir.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4387
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4388
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4389
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4390
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4392
    "Created: / 3.12.1998 / 15:07:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4393
    "Modified: / 3.12.1998 / 15:16:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4394
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4395
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4396
commonClose:nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4397
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4398
    | fdobj fd stream |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4399
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4400
    fd    := fdobj instVarNamed: #fd.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4401
    fd == -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4402
        "Never opened or already closed"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4403
        ^self.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4404
    ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4405
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4406
    stream notNil ifTrue:[
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4407
        stream isView ifTrue:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4408
            "Some applications close stdout/stderr (such as Apache Tomcat).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4409
             We don't want that, so ignore a close in that case"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4410
            stream ~~ Transcript ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4411
                self breakPoint: #jv.
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4412
            ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4413
        ] ifFalse:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4414
            (stream ~~ Stdout and:[stream ~~ Stderr and:[stream ~~ Stdin]]) ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4415
                stream close.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4416
            ]
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4417
        ]
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4418
    ] ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4419
        self breakPoint: #jv.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4420
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4421
    self setOpenFile: nil at: fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4422
    fdobj instVarNamed:#fd put: -1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4423
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4424
    "Created: / 10-08-2011 / 14:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4425
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4426
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4427
commonOpen:nativeContext forAppend:forAppend
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4428
    |fs fd fn nm dir stream fileNo readonly|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4430
    fs := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4431
    fd := fs instVarNamed:'fd'.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4432
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4433
        "/self halt:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4434
        self internalError:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4435
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4436
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4437
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4438
    nm := nativeContext argAt:1.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4439
    nm := Java as_ST_String:nm.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4441
    FileOpenTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4442
        ('JAVA: opening ' , nm) infoPrintCR.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4443
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4444
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4445
    fn := nm utf8Decoded asFilename.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4446
    dir := fn directory pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4447
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4448
    readonly := false.
904
vranyj1
parents: 903
diff changeset
  4449
"/    (PermittedDirectories notNil
vranyj1
parents: 903
diff changeset
  4450
"/    and:[PermittedDirectories includes:dir]) ifFalse:[
vranyj1
parents: 903
diff changeset
  4451
"/        FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4452
"/            answer := Dialog
904
vranyj1
parents: 903
diff changeset
  4453
"/                    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
vranyj1
parents: 903
diff changeset
  4454
"/                               labels:#('no' 'grant' 'readonly')
vranyj1
parents: 903
diff changeset
  4455
"/                               values:#(false true #readonly)
vranyj1
parents: 903
diff changeset
  4456
"/                              default:3.
vranyj1
parents: 903
diff changeset
  4457
"/            answer == false ifTrue:[
vranyj1
parents: 903
diff changeset
  4458
"/                self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
vranyj1
parents: 903
diff changeset
  4459
"/                ^ self
vranyj1
parents: 903
diff changeset
  4460
"/            ].
vranyj1
parents: 903
diff changeset
  4461
"/            readonly := (answer == #readonly).
vranyj1
parents: 903
diff changeset
  4462
"/
vranyj1
parents: 903
diff changeset
  4463
"/            readonly ifFalse:[
vranyj1
parents: 903
diff changeset
  4464
"/                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
vranyj1
parents: 903
diff changeset
  4465
"/                ifTrue:[
vranyj1
parents: 903
diff changeset
  4466
"/                    PermittedDirectories isNil ifTrue:[
vranyj1
parents: 903
diff changeset
  4467
"/                        PermittedDirectories := Set new
vranyj1
parents: 903
diff changeset
  4468
"/                    ].
vranyj1
parents: 903
diff changeset
  4469
"/                    PermittedDirectories add:dir.
vranyj1
parents: 903
diff changeset
  4470
"/                ]
vranyj1
parents: 903
diff changeset
  4471
"/            ]
vranyj1
parents: 903
diff changeset
  4472
"/        ]
vranyj1
parents: 903
diff changeset
  4473
"/    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4475
    readonly ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4476
        (fn exists and:[fn isReadable not]) ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4477
            ^self throwFileNotFoundException: 'File is not readable'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4478
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4479
        stream := fn readStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4480
    ] ifFalse:[
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4481
"/        fn exists ifFalse:[
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4482
"/            ^self throwFileNotFoundException: 'File does not exist'
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4483
"/        ].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4484
        fn isDirectory ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4485
             ^self throwFileNotFoundException: 'File is directory'
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4486
        ].
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4487
        (fn exists and:[fn isWritable not]) ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4488
            ^self throwFileNotFoundException: 'File does not writable'
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4489
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4490
        forAppend ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4491
            stream := self commonOpenStreamUsing:[fn appendingWriteStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4492
        ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4493
            stream := self commonOpenStreamUsing:[fn writeStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4494
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4495
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4496
    stream isNil ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4497
        self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4498
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4499
    stream binary.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4501
    fileNo := self addOpenFile:stream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4503
    FileOpenTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4504
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4505
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4507
    fd instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4508
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4509
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4510
    fs finalizationLobby registerChange: fs
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4511
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4512
    "Created: / 07-04-1998 / 19:14:09 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4513
    "Modified: / 04-01-1999 / 14:34:42 / cg"
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  4514
    "Modified: / 12-12-2012 / 23:43:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4515
!
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4516
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4517
commonOpenStreamUsing: aBlock
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4518
    "Helper for opening a stream. Catches 'too many files' open error
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4519
     and tries to GC to cleanup if necessary"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4520
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4521
    | stream retry |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4522
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4523
    retry := false.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4524
    [ stream := aBlock value ] on:OpenError do:[:ex|
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4525
        (ex errorCode) == (OperatingSystem errorNumberFor:#EMFILE) ifTrue:[
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4526
            "Worst case, try to cleanup"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4527
            Logger log: 'maximum number of open files reached, forcing finalization...' severity: #warn facility: #JVM.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4528
            [
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4529
                FinalizationLobby finalizeNow.
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4530
                Delay waitForSeconds: 5. "/Give Java finalization thread a chance to clean up
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4531
                ObjectMemory garbageCollect.
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4532
                retry := true.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  4533
                PerfCounters printOpenExternalStreamsOn: Stderr.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4534
            ] on: Error do:[:ex|
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4535
                Logger log: 'failed to force finalization: ', ex description severity: #error facility: #JVM
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4536
            ].
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4537
        ] ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4538
            ex pass.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4539
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4540
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4541
    retry ifTrue:[
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4542
        stream := aBlock value.
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4543
        Logger log: 'good, forced finalization solved the problem' severity: #info facility: #JVM
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4544
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4545
    ^stream
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4546
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4547
    "Created: / 23-07-2012 / 19:33:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4548
    "Modified: / 14-08-2012 / 02:25:06 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4549
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4551
fileStreamForReading:name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4552
    |fn stream tryAlongClassPath|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4554
    FileOpenTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4555
        ('JAVA: opening for read:' , name) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4556
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4557
    fn := name asFilename.
904
vranyj1
parents: 903
diff changeset
  4558
    fn exists  ifFalse:[
vranyj1
parents: 903
diff changeset
  4559
        ^self throwFileNotFoundException: 'File does not exists'
vranyj1
parents: 903
diff changeset
  4560
    ].
vranyj1
parents: 903
diff changeset
  4561
    fn isDirectory ifTrue:[
vranyj1
parents: 903
diff changeset
  4562
        ^self throwFileNotFoundException: 'File is directory'
vranyj1
parents: 903
diff changeset
  4563
    ].
vranyj1
parents: 903
diff changeset
  4564
    fn isReadable  ifFalse:[
vranyj1
parents: 903
diff changeset
  4565
        ^self throwFileNotFoundException: 'File is not readable'
vranyj1
parents: 903
diff changeset
  4566
    ].
vranyj1
parents: 903
diff changeset
  4567
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4568
    stream := self commonOpenStreamUsing:[fn readStream].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4569
    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4570
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4571
    fn isAbsolute ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4572
        "/ if not absolute, try along classPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4573
        "/ This allows classes to open local files (JEdit)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4574
        "/ even if they have NOT been loaded by a Java classLoader.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4575
        "/ Only do this for image files
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4576
        "/ (and maybe some other config files in the future),
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4577
        "/ to avoid security holes.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4578
        tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4579
"/        tryAlongClassPath := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4580
"/        (fn hasSuffix:'gif') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4581
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4582
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4583
"/        (fn hasSuffix:'jpg') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4584
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4585
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4587
        tryAlongClassPath ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4588
            Java effectiveClassPath do:[:dirName |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4589
                |fn|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4591
                (fn := dirName asFilename construct:name) exists ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4592
                    fn isReadable ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4593
                        self throwFileNotFoundException: 'File is not readable'.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4594
                        ^nil
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4595
                    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4596
                    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4597
                    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4598
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4599
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4600
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4601
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4602
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4604
    "Modified: / 27-01-1999 / 18:54:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4605
    "Modified: / 23-07-2012 / 19:37:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4606
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4608
fixFilename:path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4609
    OperatingSystem isMSDOSlike ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4610
	(#($/ $\) includes:(path at:1)) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4611
	    (path at:3) == $: ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4612
		^ path copyFrom:2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4613
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4614
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4615
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4616
    ^ path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4618
    "Created: / 20.10.1998 / 20:58:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4619
    "Modified: / 20.10.1998 / 21:06:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4620
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4622
validateFile:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4623
    |fileNo file|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4625
    fileNo := self validateFileNo:javaStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4626
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4627
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4628
    file isNil ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4629
        self throwIOExceptionWithMessage:('stream with file descriptor %1 closed or was never open' bindWith: fileNo).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4630
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4631
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4633
    ^ file
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4634
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4635
    "Created: / 04-01-1998 / 16:50:38 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4636
    "Modified: / 28-07-2012 / 02:44:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4637
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4638
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4639
validateFileDescriptor: jFileDescriptor
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4640
    "Validates given instance of java.io.FileDescriptor.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4641
     If it is valid, return underlying Smalltalk stream,
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4642
     otherwise, throws java.io.IOException"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4643
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4644
    | fileNo stream |
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4645
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4646
    fileNo := jFileDescriptor instVarNamed:'fd'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4647
    ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4648
        fileNo := jFileDescriptor instVarNamed:'handle'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4649
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4650
    fileNo isInteger ifFalse:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4651
        self throwIOExceptionWithMessage:'Invalid fd in java.io.FileDescriptor'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4652
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4653
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4654
    fileNo == -1 ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4655
        self throwIOExceptionWithMessage:'java.io.FileDescriptor not open'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4656
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4657
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4658
    stream := self getOpenFileAt:fileNo.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4659
    stream isNil ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4660
        self throwIOExceptionWithMessage:'Stale descriptor in java.io.FileDescriptor (VM stream does not exists)'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4661
        ^nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4662
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4663
    ^ stream.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4664
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4665
    "Created: / 06-07-2012 / 23:02:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4666
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4667
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4668
validateFileNo:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4669
    |fileNo descriptor|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4670
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4671
    "/ JDK 1.1.3 has fileDescriptor wrapped
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4672
    "/ JDK 1.0 has it directly as integer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4673
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4674
    fileNo := javaStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4675
    fileNo isInteger ifFalse:[
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4676
        descriptor := fileNo.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4677
        descriptor notNil ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4678
            fileNo := descriptor instVarNamed:'fd'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4679
            ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4680
                fileNo := descriptor instVarNamed:'handle'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4681
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4682
            fileNo isInteger ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4683
                self throwIOExceptionWithMessage:('invalid fd value in FileDescriptor (%1 [%2])' bindWith: fileNo with: fileNo class).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4684
                ^self
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4685
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4686
            ^fileNo
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4687
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4688
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4690
    fileNo isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4691
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4692
"/        self internalError:'invalid fileNo in read'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4693
        self throwIOExceptionWithMessage:('invalid fd value in stream object (%1 [%2])' bindWith: fileNo with: fileNo class).
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4694
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4695
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4697
    ^ fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4698
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4699
    "Created: / 04-01-1998 / 17:49:08 / cg"
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4700
    "Modified: / 13-01-1998 / 14:07:47 / cg"
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4701
    "Modified: / 18-08-2011 / 20:03:37 / jv"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4702
    "Modified: / 28-07-2012 / 02:42:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4703
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4705
!JavaVM class methodsFor:'helpers - reflection'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4706
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4707
classForJavaClassObject:aJavaClassObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4708
    "given java.lang.class instance, return the real class for it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4709
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4710
    ^ self reflection classForJavaClassObject:aJavaClassObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4712
    "Created: / 23-01-1998 / 17:44:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4713
    "Modified: / 03-02-2011 / 21:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4714
    "Modified: / 09-02-2011 / 01:02:17 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4715
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4716
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4717
javaClassObjectForClass: aClass
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4718
    "given a real class, return the corresponding java.lang.class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4719
     instance for it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4720
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4721
"/    | class |
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4722
"/
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4723
"/    "find reflection of StClass in the Java World"
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4724
"/    (JavaObjectDictionary new hasReflection: aClass name) ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4725
"/        class := JavaObjectDictionary new reflectionOf: aClass name
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4726
"/    ] ifFalse: [ class := aClass. ].
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4727
    ^ self reflection javaClassObjectForClass: aClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4729
    "Created: / 23-01-1998 / 17:43:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4730
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4731
    "Modified: / 17-01-2011 / 19:24:22 / kursjan <kursjan@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4732
    "Modified: / 28-01-2011 / 14:31:25 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4733
    "Modified: / 31-07-2012 / 00:49:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4734
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4735
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4736
javaConstructorObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4737
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4738
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4739
    self breakPoint:#mh info:'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4740
    ^ self reflection javaConstructorObjectForMethod: method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4742
    "Modified: / 09-02-2011 / 00:58:09 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4744
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4745
javaFieldObjectForField: aJavaField in: aJavaLangClass
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4746
    "given a java field, return the corresponding java.lang.Field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4747
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4748
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4749
        See OpenJDK7 source:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4750
        jdk7/hotspot/src/share/vm/runtime/reflection.cpp,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4751
        oop Reflection::new_field"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4752
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4753
    | field  clazz  name  slot  type  modifiers |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4755
    clazz := aJavaLangClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4756
    name := self reflection javaStringObjectForString: aJavaField name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4757
                interned: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4758
    slot := aJavaField index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4759
    type := self javaClassObjectForClass: aJavaField typeClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4760
    modifiers := aJavaField accessFlags.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4761
    field := (self classForName: 'java.lang.reflect.Field') new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4762
    field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4763
        instVarNamed: #clazz put: clazz;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4764
        instVarNamed: #name put: name;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4765
        instVarNamed: #slot put: slot;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4766
        instVarNamed: #type put: type;
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4767
        instVarNamed: #modifiers put: modifiers;
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4768
        yourself.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4769
    aJavaField annotations
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4770
        ifNotNil: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4771
            field instVarNamed: #annotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4772
                put: aJavaField annotations runtimeVisible rawAnnotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4773
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4774
    ^ field.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4776
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4777
    "Created: / 22-11-2010 / 17:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4778
    "Modified: / 09-02-2011 / 01:06:20 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4779
    "Modified: / 01-04-2011 / 12:11:11 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4780
    "Modified: / 25-04-2011 / 20:23:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4781
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4782
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4783
javaMethodObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4784
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4785
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4787
    ^ self reflection javaMethodObjectForMethod:method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4789
    "Modified: / 28-02-2011 / 17:08:36 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4790
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4791
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4792
methodForJavaConstructorObject:constructor
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4793
    "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4794
     it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4795
    self breakPoint:#mh info: 'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4796
    ^ self reflection methodForJavaConstructorObject: constructor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4798
    "Modified: / 09-02-2011 / 00:59:43 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4799
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4800
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4801
methodForJavaMethodObject:aJavaMethodObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4802
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4803
        Given an instance of java.lang.reflect.Method, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4804
        real method associated with it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4805
   ^ self reflection methodForJavaMethodObject:aJavaMethodObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4807
    "Modified: / 07-02-2011 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4808
    "Modified: / 28-02-2011 / 16:58:05 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4809
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4810
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4811
!JavaVM class methodsFor:'monitors'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4812
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4813
getJavaMonitorFor:someObject
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4814
    | mon |
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4815
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4816
    "/    JV@2012-04-13: Removed the critical section - this method should be called
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4817
    "/                   only when interrupts are blocked
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4818
    "/    LockTableAccess
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4819
    "/        critical: [
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4820
    mon := LockTable at:someObject ifAbsent:nil.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4821
    mon isNil ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4822
        LockTable at:someObject put:(mon := JavaMonitor for:someObject)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4823
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4824
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4825
"/        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4826
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4827
    ^ mon
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4828
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4829
    "Created: / 02-01-1998 / 19:01:52 / cg"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4830
    "Modified: / 30-11-2011 / 20:40:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4831
    "Modified: / 13-04-2012 / 00:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4832
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4833
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4834
monitorEnter:someObject in:aJavaContext
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4835
    | thisProcess  wasBlocked  lockWordOrJavaMonitor |
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4836
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4837
    self assert:(aJavaContext isNil or:[ aJavaContext isJavaContext ]).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4838
    someObject isNil ifTrue:[
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4839
        self throwNullPointerException.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4840
        self breakPoint:#mh.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4841
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4842
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4843
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4844
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4845
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4846
            log:('MONENTER: entering monitor for %1 in %2'
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4847
                    bindWith:(self monitorFriendlyPrintStringOf:someObject)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4848
                    with:thisProcess name)
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4849
            severity:#debug
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4850
            facility:#JVM.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4851
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4852
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4853
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4854
    "/ Fetch the lockword. If it is thinlock, iflate it
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4855
    lockWordOrJavaMonitor := someObject getJavaLockWord.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4856
    lockWordOrJavaMonitor class == SmallInteger ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4857
        self inflateLockFor: someObject lockword: lockWordOrJavaMonitor
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4858
    ] ifFalse:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4859
        lockWordOrJavaMonitor class ~~ JavaMonitor ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4860
            self internalError: 'lockWord does not contain SmallIntefer nor JavaMonitor!!'.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4861
        ]
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4862
    ].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4863
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4864
    "/ Now, we're sure that the lock is fat JavaMonitor, enter it
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4865
    self enterMonitor:someObject ofProcess:thisProcess.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4866
"/    aJavaContext notNil ifTrue:[aJavaContext addMonitor:someObject].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4867
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4868
    wasBlocked ifFalse:[ OperatingSystem unblockInterrupts ].
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4869
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4870
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4871
        Logger
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4872
            log:'MONENTER: monitor entered in ' , thisProcess name
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4873
            severity:#debug
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4874
            facility:#JVM.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4875
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4876
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4877
    "Created: / 08-11-2011 / 15:15:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4878
    "Modified: / 27-08-2012 / 11:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4879
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4880
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4881
monitorExit: someObject in: aJavaContext
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4882
    | thisProcess  wasBlocked|
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4883
"/    self assert: (aJavaContext isJavaContext).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4884
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4885
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4886
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4887
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4888
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4889
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4890
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4891
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4892
            log: ('MONEXIT: leaving monitor for %1 in %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4893
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4894
                    with: thisProcess name) , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4895
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4896
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4897
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4898
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4899
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4900
    self leaveMonitor: someObject ofProcess: thisProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4901
"/    aJavaContext notNil ifTrue:[aJavaContext removeMonitor: someObject].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4902
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4903
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4904
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4905
        Logger
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4906
            log: 'MONEXIT: monitor left in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4907
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4908
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4909
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4910
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4911
    "Created: / 08-11-2011 / 15:17:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4912
    "Modified: / 27-08-2012 / 11:49:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4913
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4914
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4915
notify: obj
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4916
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4917
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4918
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4919
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4920
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4921
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4922
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4923
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4924
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4925
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4926
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4927
    mon notify.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4928
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4929
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4930
    "Created: / 22-11-2011 / 13:26:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4931
    "Modified: / 26-08-2012 / 18:39:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4932
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4933
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4934
notifyAll: obj
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4935
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4936
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4937
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4938
    thisProcess := Processor activeProcess.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4939
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4940
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4941
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4942
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4943
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4944
        ^self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4945
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4946
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4947
    mon notifyAll.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4948
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4949
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4950
    "Created: / 22-11-2011 / 13:26:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4951
    "Modified: / 26-08-2012 / 18:39:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4952
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4953
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4954
releaseMonitorsOfUnwindingContext: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4955
    "Forcibly releases all monitors acquired by given context.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4956
     Use by unwind handlers"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4957
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4958
    | thisProcess  wasBlocked receiver lockWord |
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4959
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4960
        Logger
1486
48012ce29afd - TestletTestCaseProxy
vranyj1
parents: 1481
diff changeset
  4961
            log: ('UNWIND HANDLER: force-leaving ',aJavaContext acquiredMonitors size printString,'monitors acquired by: ' , aJavaContext printString )
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4962
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4963
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4964
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4965
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4966
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4967
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4968
    receiver := aJavaContext acquiredMonitors.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4969
    receiver notNil ifTrue:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4970
        lockWord := receiver getJavaLockWord.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4971
    ] ifFalse:[
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4972
        lockWord := 0.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4973
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4974
%{
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4975
    if (lockWord != __MKINT(0)) {
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4976
      __monitorExit(receiver);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4977
    }
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4978
%}.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4979
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4980
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4981
    MonitorTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4982
        Logger
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4983
            log: ('UNWIND HANDLER: leftover monitors left for ' , aJavaContext printString )
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4984
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4985
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4986
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4987
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4988
    "Created: / 05-04-2012 / 11:35:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4989
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4990
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4991
sleepForTimeout: tmo state: state
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4992
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  4993
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4994
    | thisProcess |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4995
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4996
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4997
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4998
        thisProcess clearInterrupted.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  4999
        self throwInterruptedException: 'process was interrupted before/during sleep !!?'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5000
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5001
    thisProcess state: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5002
    (Delay forMilliseconds: tmo) waitWithState: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5003
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5004
        thisProcess clearInterrupted.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5005
        self throwInterruptedException: 'process was interrupted before/during sleep !!?'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5006
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5007
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5008
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5009
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5010
    "Created: / 30-11-2011 / 11:04:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5011
    "Modified (format): / 26-08-2012 / 18:40:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5012
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5013
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5014
waitOn: obj forTimeout: tmo state: state
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5015
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5016
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5017
    | wasBlocked  thisProcess  mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5018
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5019
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5020
        thisProcess clearInterrupted.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5021
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5022
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5023
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5024
    wasBlocked := OperatingSystem blockInterrupts.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5025
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5026
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5027
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5028
        self throwIllegalMonitorStateException: 'monitor was not owned on wait by ' , thisProcess printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5029
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5030
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5031
    state notNil ifTrue: [ thisProcess state: state ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5032
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5033
    mon waitForMilliseconds: tmo.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5034
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5035
        thisProcess clearInterrupted.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5036
        self
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5037
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5038
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5039
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5040
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5041
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5042
    "Created: / 22-11-2011 / 13:20:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5043
    "Modified: / 26-08-2012 / 18:40:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5044
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5045
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5046
!JavaVM class methodsFor:'monitors-internal'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5047
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5048
acquireMonitor: obj ofProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5049
    "Acquire* (stay in the queue and get it) monitor.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5050
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5051
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5052
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5053
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5054
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5055
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5056
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5057
            log: ('acquiring monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5058
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5059
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5060
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5061
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5062
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5063
    mon acquire.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5064
    self assert:(mon isOwnedBy: aProcess).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5065
"/    self acquiredMonitorsOf: aProcess add: obj.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5066
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5067
"/    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5068
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5069
    "Created: / 17-11-2011 / 19:01:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5070
    "Modified: / 27-08-2012 / 23:24:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5071
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5072
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5073
acquireMonitorAndNotifyAll: handle
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5074
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5075
    mon := handle getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5076
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5077
    self notifyAll: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5078
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5079
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5080
    "Created: / 29-11-2011 / 14:24:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5081
    "Modified: / 27-08-2012 / 01:06:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5082
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5083
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5084
acquireMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5085
    "will try to acquire all entered monitors of process"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5086
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5087
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5088
    (self hasEnteredMonitorsOfProcess: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5089
        enteredMonitors := self copyEnteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5090
        self assert: enteredMonitors notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5091
        enteredMonitors do: [:each | self acquireMonitor: each ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5092
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5093
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5094
    "Created: / 17-11-2011 / 17:16:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5095
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5096
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5097
acquiredMonitorsOf: aProcess add: anyObject
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5098
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5099
    ^ (self acquiredMonitorsOfProcess: aProcess) add: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5100
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5101
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5102
    "Created: / 17-11-2011 / 18:29:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5103
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5104
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5105
acquiredMonitorsOf: aProcess remove: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5106
"/    self assert: ((self acquiredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5107
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5108
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5109
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5110
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5111
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5112
    (self acquiredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5113
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5114
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5115
    "Created: / 17-11-2011 / 18:40:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5116
    "Modified: / 11-04-2012 / 23:37:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5117
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5118
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5119
acquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5120
    ^ AcquiredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5121
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5122
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5123
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5124
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5125
            monitors
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5126
        ]
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5127
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5128
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5129
    "Created: / 17-11-2011 / 18:29:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5130
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5131
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5132
acquiredMonitorsOfProcessAt: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5133
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5134
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5135
    ^ AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5136
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5137
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5138
    "Created: / 17-11-2011 / 17:03:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5139
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5140
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5141
copyAcquiredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5142
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5143
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5144
    ^ (AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5145
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5146
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5147
    "Created: / 17-11-2011 / 19:23:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5148
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5149
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5150
copyEnteredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5151
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5152
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5153
    ^ (EnteredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5154
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5155
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5156
    "Created: / 17-11-2011 / 19:22:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5157
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5158
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5159
countAcquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5160
    | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5161
    acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5162
    ^ acquiredMonitors isNil ifTrue: [ 0 ] ifFalse: [ acquiredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5163
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5164
    "Created: / 17-11-2011 / 18:23:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5165
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5166
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5167
countEnteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5168
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5169
    enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5170
    ^ enteredMonitors isNil ifTrue: [ 0 ] ifFalse: [ enteredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5171
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5172
    "Created: / 17-11-2011 / 17:14:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5173
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5174
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5175
enterMonitor: obj ofProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5176
    "registers itself as one of processes wanting monitor and then tries to acquire it."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5177
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5178
    | mon objInLists |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5179
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5180
        MonitorTraceId := MonitorTraceId + 1.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5181
        objInLists := { obj . MonitorTraceId }
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5182
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5183
        objInLists := obj
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5184
    ].
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5185
"/    self enteredMonitorsOf: aProcess add: objInLists.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5186
    mon := obj  getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5187
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5188
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5189
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5190
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5191
            log: ('[trace id %3] Entering monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5192
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5193
                    with: aProcess id
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5194
                    with: MonitorTraceId)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5195
            severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5196
            facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5197
            originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5198
            "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5199
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5200
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5201
    self assert: (mon isOwnedBy: aProcess).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5202
"/    self acquiredMonitorsOf: aProcess add: objInLists.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5203
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: objInLists).
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5204
"/    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: objInLists).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5205
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5206
    "Created: / 17-11-2011 / 19:03:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5207
    "Modified: / 27-08-2012 / 23:21:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5208
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5209
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5210
enteredMonitorsOf: aProcess add: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5211
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5212
    ^ (self enteredMonitorsOfProcess: aProcess) addLast: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5213
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5214
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5215
    "Created: / 17-11-2011 / 16:25:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5216
    "Modified: / 13-04-2012 / 01:05:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5217
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5218
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5219
enteredMonitorsOf: aProcess remove: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5220
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5221
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5222
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5223
        self assert: ((self enteredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5224
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5225
        self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5226
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5227
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5228
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5229
    (self enteredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5230
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5231
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5232
    "Created: / 17-11-2011 / 18:40:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5233
    "Modified: / 11-04-2012 / 23:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5234
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5235
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5236
enteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5237
    ^ EnteredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5238
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5239
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5240
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5241
            EnteredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5242
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5243
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5244
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5245
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5246
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5247
    "Modified: / 17-11-2011 / 19:22:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5248
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5249
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5250
enteredMonitorsOfProcessAt: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5251
    "does not create empty collection like enteredMonitorsOfProcess"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5252
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5253
    ^ EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5254
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5255
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5256
    "Created: / 16-11-2011 / 15:37:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5257
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5258
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5259
exitOwnedMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5260
   |thisProcess monitors|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5261
   thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5262
   monitors := self acquiredMonitorsOfProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5263
   monitors do: [:each | self assert: (each isOwnedBy:thisProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5264
    each exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5265
    ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5266
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5267
    "Created: / 05-12-2011 / 21:15:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5268
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5269
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5270
has: aProcess enteredMonitorFor: anyObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5271
    ^ (self enteredMonitorsOfProcess: aProcess) includes: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5272
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5273
    "Created: / 17-11-2011 / 16:28:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5274
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5275
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5276
hasAcquiredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5277
   | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5278
   acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5279
   ^ acquiredMonitors isNil
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5280
   ifTrue: [ false ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5281
           ifFalse: [ acquiredMonitors size > 0 ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5282
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5283
    "Created: / 17-11-2011 / 17:07:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5284
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5285
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5286
hasEnteredMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5287
   | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5288
   enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5289
   ^ enteredMonitors isNil ifTrue: [ false ] ifFalse: [ enteredMonitors size > 0].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5290
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5291
    "Created: / 17-11-2011 / 17:09:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5292
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5293
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5294
inflateLockFor: obj lockword: lw
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5295
     | threadId count mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5296
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5297
    threadId = __MKINT(__LOCKWORD_TID_GET(lw));
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5298
    count =    __MKINT(__LOCKWORD_CNT_GET(lw));
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5299
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5300
    ^ JavaMonitor for: obj thread: threadId nestedLockCount: count.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5301
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5302
    "Modified (format): / 27-08-2012 / 15:34:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5303
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5304
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5305
leaveMonitor: obj ofProcess: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5306
    "Leave* (release and never come back, exit) monitor owned by given project.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5307
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5308
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5309
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5310
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5311
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5312
    "/self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5313
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5314
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5315
        log: ('[trace id %3] leaving monitor %1 owned by thread: %2 '
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5316
                bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5317
                with: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5318
                with: (self enteredMonitorsOfProcess: aProcess) last second)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5319
        severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5320
        facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5321
        originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5322
        "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5323
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5324
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5325
    mon exit.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5326
"/    self acquiredMonitorsOf: aProcess remove: obj.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5327
"/    self enteredMonitorsOf: aProcess remove: obj.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5328
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5329
    "Created: / 17-11-2011 / 18:46:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5330
    "Modified: / 27-08-2012 / 23:22:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5331
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5332
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5333
leaveMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5334
    "Leave* (release and never come back, exit) all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5335
     Called when cleaning up after process death or when handling smalltalk (non-java) exceptions
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5336
     (such an exception in native method)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5337
     *leave is the word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5338
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5339
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5340
    monitors := EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5341
    monitors notNil ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5342
        monitors do: [:obj |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5343
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5344
            | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5345
            mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5346
            mon notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5347
                (mon isOwnedBy: aProcess) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5348
                    Logger
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5349
                        log: ('leaving monitor owned by dying thread: ' , aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5350
                        severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5351
                        facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5352
                    self breakPoint: #jv.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5353
                    mon exit
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5354
                ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5355
            ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5356
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5357
        EnteredMonitorsPerProcess removeKey: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5358
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5359
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5360
    "Created: / 17-11-2011 / 16:51:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5361
    "Modified (format): / 27-08-2012 / 11:37:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5362
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5363
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5364
monitorExit: someObject in: aJavaContext ifOwnedBy: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5365
    | monitor |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5366
    monitor := someObject getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5367
    (monitor isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5368
        self monitorExit: someObject in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5369
    ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5370
        MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5371
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5372
                log: ('%1 trying to exit monitor for %2, but it does not own it. Ignoring'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5373
                        bindWith: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5374
                        with: (self monitorFriendlyPrintStringOf: someObject))
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5375
                severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5376
                facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5377
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5378
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5379
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5380
    "Created: / 17-11-2011 / 21:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5381
    "Modified: / 26-08-2012 / 20:00:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1687
dd0f09a3f7b9 Reverted acidentical commit of lockword changes
vranyj1
parents: 1685
diff changeset
  5382
!
dd0f09a3f7b9 Reverted acidentical commit of lockword changes
vranyj1
parents: 1685
diff changeset
  5383
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5384
monitorFriendlyPrintStringOf: someObject
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5385
    | objString |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5386
    someObject isJavaClass ifTrue: [ objString := someObject name ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5387
        objString := someObject class name , '@'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5388
                    , someObject identityHash printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5389
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5390
    ^ objString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5391
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5392
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5393
releaseMonitor: obj ofProcess: aProcess
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5394
    "Release* (let go and wait for it again) monitor owned by given project.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5395
     *word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5396
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5397
    | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5398
    mon := obj getJavaMonitor.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5399
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5400
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5401
    MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5402
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5403
            log: ('releasing monitor %1 owned by thread: %2'
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5404
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5405
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5406
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5407
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5408
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5409
    mon release.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5410
    self acquiredMonitorsOf: aProcess remove: obj.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5411
"/    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5412
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5413
    "Created: / 17-11-2011 / 18:51:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  5414
    "Modified: / 27-08-2012 / 23:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5415
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5416
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5417
releaseMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5418
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5419
    self releaseMonitorsOfProcess: Processor activeProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5420
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5421
    "Created: / 04-11-2011 / 22:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5422
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5423
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5424
releaseMonitorsOfProcess: aProcess
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5425
    "Releases* all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5426
     Monitor can be acquired again, (aProcess going into WAIT)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5427
     *word used by jvm spec"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5428
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5429
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5430
    monitors := self copyAcquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5431
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5432
        monitors do: [:obj | self releaseMonitor: obj ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5433
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5434
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5435
    "Created: / 04-11-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5436
    "Modified: / 17-11-2011 / 21:29:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5437
    "Modified (comment): / 05-12-2011 / 21:13:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5438
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5439
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5440
unwindHandlerForJavaContext: aJavaContext
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5441
    "given a context which has been marked for unwind,
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5442
     retrieve the handler block. This method is called when ST
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5443
     exception raises and stack is unwinding. JavaClass instance
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5444
     has an opportunity to clean up monitors"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5445
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5446
    ^ [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5447
        | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5448
        aJavaContext shouldExecuteFinallyOnUnwind ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5449
            self throwExceptionForFinallyIn: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5450
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5451
        self releaseMonitorsOfUnwindingContext: aJavaContext.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5452
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5453
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5454
    "Created: / 08-11-2011 / 12:30:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5455
    "Modified: / 17-11-2011 / 21:33:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5456
    "Modified: / 10-04-2012 / 11:08:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5457
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5458
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5459
!JavaVM class methodsFor:'monitors-obsolete'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5460
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5461
waitFor: sema state: pState timeOut: tmo
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5462
    "wait"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5463
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5464
    | wasBlocked  thisProcess  releasedCount  acquiredCount |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5465
    thisProcess := Processor activeProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5466
    wasBlocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5467
    releasedCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5468
    (self hasAcquiredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5469
        MonitorTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5470
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5471
                log: thisProcess name , ' going into WAIT - releasing '
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5472
                        , (self countAcquiredMonitorsOfProcess: thisProcess) printString
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5473
                            , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5474
                severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5475
                facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5476
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5477
        self releaseMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5478
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5479
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5480
    pState notNil ifTrue: [ thisProcess state: pState ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5481
    sema isNil ifTrue: [ Delay waitForMilliseconds: tmo ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5482
        (tmo isNil or: [ tmo = 0 ]) ifTrue: [ sema wait. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5483
            sema waitWithTimeout: tmo / 1000.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5484
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5485
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5486
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5487
    "/ re-enter monitors.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5488
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5489
    (self hasEnteredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5490
        wasBlocked := OperatingSystem blockInterrupts.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5491
        Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5492
            log: thisProcess name , ' has been notified - trying to acquire '
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5493
                    , (self countEnteredMonitorsOfProcess: thisProcess) printString
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5494
                        , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5495
            severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5496
            facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5497
        self acquireMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5498
        acquiredCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5499
        self assert: acquiredCount = releasedCount.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5500
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5501
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5502
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5503
    "Created: / 30-12-1998 / 19:19:35 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5504
    "Modified: / 08-01-1999 / 17:29:24 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5505
    "Modified: / 20-11-2011 / 12:36:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5506
! !
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5507
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5508
!JavaVM class methodsFor:'native - com.sun.management'!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5509
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5510
_com_sun_management_UnixOperatingSystem_initialize: nativeContext
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5511
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5512
    <javanative: 'com/sun/management/UnixOperatingSystem' name: 'initialize()V'>
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5513
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5514
Logger log: 'mh did not set page_size here, which he should :)' severity:#info facility:#JVM.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5515
^self.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5516
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5517
    "Modified: / 03-11-2011 / 18:59:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5518
! !
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5519
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5520
!JavaVM class methodsFor:'native - java.awt'!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5521
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5522
_java_awt_AWTEvent_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5523
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5524
    <javanative: 'java/awt/AWTEvent' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5525
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5526
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5527
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5528
    "Modified: / 12-08-2011 / 19:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5529
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5530
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5531
_java_awt_Button_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5532
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5533
    <javanative: 'java/awt/Button' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5534
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5535
    "Modified: / 09-02-2012 / 22:54:34 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5536
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5537
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5538
_java_awt_Color_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5539
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5540
    <javanative: 'java/awt/Color' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5541
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5542
        "/ new with jdk1.2 ...
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5543
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5544
    "Created: / 28.1.1998 / 22:19:23 / cg"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5545
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5546
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5547
_java_awt_Component_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5548
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5549
    <javanative: 'java/awt/Component' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5550
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5551
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5552
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5553
    "Created: / 27.1.1998 / 19:53:29 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5554
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5555
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5556
_java_awt_Container_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5557
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5558
    <javanative: 'java/awt/Container' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5559
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5560
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5561
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5562
    "Modified: / 12-08-2011 / 19:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5563
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5564
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5565
_java_awt_Cursor_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5566
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5567
    <javanative: 'java/awt/Cursor' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5568
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5569
    "Modified: / 09-02-2012 / 22:54:49 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5570
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5571
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5572
_java_awt_Dialog_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5573
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5574
    <javanative: 'java/awt/Dialog' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5575
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5576
    "Modified: / 09-02-2012 / 22:54:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5577
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5578
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5579
_java_awt_Dimension_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5580
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5581
    <javanative: 'java/awt/Dimension' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5582
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5583
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5584
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5585
    "Modified: / 12-08-2011 / 19:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5586
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5587
1247
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5588
_java_awt_Event_initIDs: nativeContext
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5589
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5590
    <javanative: 'java/awt/Event' name: 'initIDs()V'>
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5591
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5592
    "Modified: / 09-02-2012 / 22:53:11 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5593
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5594
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5595
_java_awt_FontMetrics_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5596
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5597
    <javanative: 'java/awt/FontMetrics' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5598
1247
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5599
    ^ UnimplementedNativeMethodSignal raise
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5600
!
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5601
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5602
_java_awt_Frame_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5603
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5604
    <javanative: 'java/awt/Frame' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5605
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5606
    "Modified: / 09-02-2012 / 22:53:52 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5607
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5608
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5609
_java_awt_Insets_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5610
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5611
    <javanative: 'java/awt/Insets' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5612
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5613
    "Modified: / 09-02-2012 / 22:54:54 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5614
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5615
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5616
_java_awt_KeyboardFocusManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5617
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5618
    <javanative: 'java/awt/KeyboardFocusManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5619
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5620
    "Modified: / 09-02-2012 / 22:55:04 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5621
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5622
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5623
_java_awt_MenuComponent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5624
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5625
    <javanative: 'java/awt/MenuComponent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5626
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5627
    "Modified: / 09-02-2012 / 22:53:22 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5628
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5629
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5630
_java_awt_MenuItem_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5631
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5632
    <javanative: 'java/awt/MenuItem' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5633
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5634
    "Modified: / 09-02-2012 / 22:54:40 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5635
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5636
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5637
_java_awt_Rectangle_initIDs: nativeContext
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5638
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5639
    <javanative: 'java/awt/Rectangle' name: 'initIDs()V'>
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5640
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5641
    "Intentionally left blank"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5642
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5643
    "Modified: / 27-10-2011 / 15:07:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5644
!
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5645
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5646
_java_awt_Toolkit_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5647
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5648
    <javanative: 'java/awt/Toolkit' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5649
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5650
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5651
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5652
    "Created: / 27.1.1998 / 19:53:50 / cg"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5653
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5654
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5655
_java_awt_Window_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5656
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5657
    <javanative: 'java/awt/Window' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5658
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5659
    "Modified: / 09-02-2012 / 22:53:47 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5660
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5661
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5662
!JavaVM class methodsFor:'native - java.awt.event'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5663
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5664
_java_awt_event_InputEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5665
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5666
    <javanative: 'java/awt/event/InputEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5667
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5668
    "Modified: / 09-02-2012 / 22:53:27 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5669
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5670
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5671
_java_awt_event_KeyEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5672
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5673
    <javanative: 'java/awt/event/KeyEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5674
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5675
    "Modified: / 09-02-2012 / 22:53:33 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5676
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5677
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5678
_java_awt_event_MouseEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5679
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5680
    <javanative: 'java/awt/event/MouseEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5681
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5682
    "Modified: / 09-02-2012 / 22:53:40 / mh <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5683
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5684
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5685
!JavaVM class methodsFor:'native - java.io'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5687
_java_io_FileDescriptor_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5688
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5689
    <javanative: 'java/io/FileDescriptor' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5691
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5693
    "Created: / 27.1.1998 / 18:16:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5694
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5695
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5696
_java_io_FileDescriptor_set: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5697
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5698
    <javanative: 'java/io/FileDescriptor' name: 'set(I)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5699
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5700
    "SunJDK Speciofic method, we don't need handles, so return
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5701
     FD instead"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5702
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5703
    ^nativeContext argAt:1
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5704
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  5705
    "Modified: / 18-08-2011 / 19:54:36 / jv"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5706
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5707
904
vranyj1
parents: 903
diff changeset
  5708
_java_io_FileDescriptor_sync: nativeContext
vranyj1
parents: 903
diff changeset
  5709
vranyj1
parents: 903
diff changeset
  5710
    <javanative: 'java/io/FileDescriptor' name: 'sync'>
vranyj1
parents: 903
diff changeset
  5711
    "
vranyj1
parents: 903
diff changeset
  5712
    /**
vranyj1
parents: 903
diff changeset
  5713
    * Force all system buffers to synchronize with the underlying
vranyj1
parents: 903
diff changeset
  5714
    * device.  This method returns after all modified data and
vranyj1
parents: 903
diff changeset
  5715
    * attributes of this FileDescriptor have been written to the
vranyj1
parents: 903
diff changeset
  5716
    * relevant device(s).  In particular, if this FileDescriptor
vranyj1
parents: 903
diff changeset
  5717
    * refers to a physical storage medium, such as a file in a file
vranyj1
parents: 903
diff changeset
  5718
    * system, sync will not return until all in-memory modified copies
vranyj1
parents: 903
diff changeset
  5719
    * of buffers associated with this FileDescriptor have been
vranyj1
parents: 903
diff changeset
  5720
    * written to the physical medium.
vranyj1
parents: 903
diff changeset
  5721
    *
vranyj1
parents: 903
diff changeset
  5722
    * sync is meant to be used by code that requires physical
vranyj1
parents: 903
diff changeset
  5723
    * storage (such as a file) to be in a known state  For
vranyj1
parents: 903
diff changeset
  5724
    * example, a class that provided a simple transaction facility
vranyj1
parents: 903
diff changeset
  5725
    * might use sync to ensure that all changes to a file caused
vranyj1
parents: 903
diff changeset
  5726
    * by a given transaction were recorded on a storage medium.
vranyj1
parents: 903
diff changeset
  5727
    *
vranyj1
parents: 903
diff changeset
  5728
    * sync only affects buffers downstream of this FileDescriptor.  If
vranyj1
parents: 903
diff changeset
  5729
    * any in-memory buffering is being done by the application (for
vranyj1
parents: 903
diff changeset
  5730
    * example, by a BufferedOutputStream object), those buffers must
vranyj1
parents: 903
diff changeset
  5731
    * be flushed into the FileDescriptor (for example, by invoking
vranyj1
parents: 903
diff changeset
  5732
    * OutputStream.flush) before that data will be affected by sync.
vranyj1
parents: 903
diff changeset
  5733
    *
vranyj1
parents: 903
diff changeset
  5734
    * @exception SyncFailedException
vranyj1
parents: 903
diff changeset
  5735
    *        Thrown when the buffers cannot be flushed,
vranyj1
parents: 903
diff changeset
  5736
    *        or because the system cannot guarantee that all the
vranyj1
parents: 903
diff changeset
  5737
    *        buffers have been synchronized with physical media.
vranyj1
parents: 903
diff changeset
  5738
    * @since     JDK1.1
vranyj1
parents: 903
diff changeset
  5739
    */
vranyj1
parents: 903
diff changeset
  5740
    public native void sync() throws SyncFailedException;
vranyj1
parents: 903
diff changeset
  5741
    "
vranyj1
parents: 903
diff changeset
  5742
vranyj1
parents: 903
diff changeset
  5743
    OpenFileTable do:[:stream|
vranyj1
parents: 903
diff changeset
  5744
        stream notNil ifTrue:[stream flush].
vranyj1
parents: 903
diff changeset
  5745
    ].
vranyj1
parents: 903
diff changeset
  5746
vranyj1
parents: 903
diff changeset
  5747
    "Created: / 12-11-1998 / 19:26:25 / cg"
vranyj1
parents: 903
diff changeset
  5748
    "Modified (format): / 10-08-2011 / 19:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 903
diff changeset
  5749
!
vranyj1
parents: 903
diff changeset
  5750
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5751
_java_io_FileInputStream_available: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5752
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5753
    <javanative: 'java/io/FileInputStream' name: 'available'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5754
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5755
        |file|
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5756
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5757
    file := self validateFile:(nativeContext receiver).
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5758
    file == Stdin ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5759
        file := StdinReplacementFileQuerySignal raiseRequest.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5760
        file isNil ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5761
            ^ 1
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5762
        ]
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5763
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5764
    file isFileStream ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5765
        ^ file size - file position + 1
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5766
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5767
    file atEnd ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5768
        ^ 0.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5769
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5770
    self halt.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5771
    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5772
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5773
    "Modified: / 14-01-1998 / 15:12:52 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5774
    "Modified: / 28-07-2012 / 02:45:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5775
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5776
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5777
_java_io_FileInputStream_close0: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5778
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5779
    <javanative: 'java/io/FileInputStream' name: 'close0'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5780
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5781
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5782
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5783
    "Modified: / 10-08-2011 / 14:03:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5784
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5785
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5786
_java_io_FileInputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5788
    <javanative: 'java/io/FileInputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5789
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5790
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5791
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5792
    "Created: / 27.1.1998 / 18:15:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5793
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5794
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5795
_java_io_FileInputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5796
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5797
    <javanative: 'java/io/FileInputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5798
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5799
    |fs fd name stream fileNo|
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5800
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5801
    fs := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5802
    fd := fs instVarNamed:'fd'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5803
    (fileNo := fd instVarNamed:'fd') ~~ 0 ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5804
        fileNo ~~ -1 ifTrue:[
vranyj1
parents: 903
diff changeset
  5805
            self halt:'file already open'.
vranyj1
parents: 903
diff changeset
  5806
            self internalError:'file already open'.
vranyj1
parents: 903
diff changeset
  5807
            ^ self.
vranyj1
parents: 903
diff changeset
  5808
        ]
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5809
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5810
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5811
    name := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5812
    name := Java as_ST_String:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5813
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5814
    name := self fixFilename:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5815
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5816
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5817
        ('JAVA: opening ' , name) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5818
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5819
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5820
    stream := self fileStreamForReading:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5821
    stream isNil ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5822
        ^ self.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5823
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5824
    stream buffered:false.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5825
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5826
"/    FileOpenConfirmation ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5827
"/        (self confirm:('JAVA Security check\\Opening ''' , name , ''' for reading.\Grant permission ?') withCRs)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5828
"/        ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5829
"/            self throwIOExceptionWithMessage:('no permission to open ' , name , ' for reading').
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5830
"/            ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5831
"/        ]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5832
"/    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5833
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5834
    fileNo := self addOpenFile:stream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5835
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5836
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5837
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5838
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5839
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5840
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5841
    "Kludge for finalization..."
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5842
904
vranyj1
parents: 903
diff changeset
  5843
    "Created: / 04-01-1998 / 16:47:12 / cg"
vranyj1
parents: 903
diff changeset
  5844
    "Modified: / 28-01-1999 / 17:24:07 / cg"
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  5845
    "Modified: / 24-07-2012 / 02:17:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5846
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5847
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5848
_java_io_FileInputStream_read: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5849
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5850
    <javanative: 'java/io/FileInputStream' name: 'read()I'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5851
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5852
        |file byte|
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5853
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5854
    file := self validateFile:(nativeContext receiver).
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5855
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5856
    file == Stdin ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5857
        file := StdinReplacementFileQuerySignal raiseRequest.
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5858
        file isNil ifTrue:[
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5859
            ^ -1
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5860
        ]
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5861
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5862
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5863
    FileIOTrace ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5864
        ('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5865
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5866
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5867
    byte := file nextByte.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5868
    byte isNil ifTrue:[
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5869
        ^ -1
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5870
    ].
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5871
    "Java bytes are signed"
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5872
    byte > 127 ifTrue:[
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5873
        byte := 
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5874
            byte"/ - 255.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5875
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5876
    ^ byte
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5877
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5878
    "Created: / 05-01-1998 / 02:17:08 / cg"
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5879
    "Modified (format): / 12-12-2012 / 23:53:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5880
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5881
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5882
_java_io_FileInputStream_readBytes: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5884
    <javanative: 'java/io/FileInputStream' name: 'readBytes'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5885
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5886
    ^ self anyStream_readBytes:nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5887
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5888
    "Modified: / 04-02-1998 / 15:23:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5889
    "Modified (format): / 10-08-2011 / 21:32:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5890
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5891
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5892
_java_io_FileInputStream_skip: nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5893
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5894
    <javanative: 'java/io/FileInputStream' name: 'skip(J)J'>
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5895
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5896
        "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5897
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5898
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5899
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5900
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5901
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5902
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5903
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5904
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5905
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5906
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5907
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5908
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5909
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5910
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5911
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5912
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5913
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5914
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5915
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5916
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5917
!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5918
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5919
_java_io_FileOutputStream_close0: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5920
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5921
    <javanative: 'java/io/FileOutputStream' name: 'close0'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5922
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5923
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5924
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5925
    "Modified: / 10-08-2011 / 14:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5926
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5927
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5928
_java_io_FileOutputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5930
    <javanative: 'java/io/FileOutputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5931
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5932
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5934
    "Created: / 27.1.1998 / 18:16:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5935
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5936
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5937
_java_io_FileOutputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5938
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5939
    <javanative: 'java/io/FileOutputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5940
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5941
    ^ self commonOpen:nativeContext forAppend:false
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5942
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5943
    "Modified: / 07-04-1998 / 19:14:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5944
    "Modified (format): / 10-08-2011 / 14:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5945
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5946
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5947
_java_io_FileOutputStream_openAppend: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5948
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5949
    <javanative: 'java/io/FileOutputStream' name: 'openAppend'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5950
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5951
    ^ self commonOpen:nativeContext forAppend:true
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5952
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5953
    "Modified: / 07-04-1998 / 19:13:42 / cg"
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5954
    "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5955
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5956
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5957
_java_io_FileOutputStream_write: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5958
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5959
    <javanative: 'java/io/FileOutputStream' name: 'write'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5960
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5961
     /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5962
     * Writes the specified byte to this file output stream. Implements
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5963
     * the <code>write</code> method of <code>OutputStream</code>.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5964
     *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5965
     * @param      b   the byte to be written.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5966
     * @exception  IOException  if an I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5967
     */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5968
     public native void write(int b) throws IOException;
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5969
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5970
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5971
    | fdobj fd stream b |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5972
    b := nativeContext argAt:1.
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5973
    "/Java byte is signed, make it integer in 0-255"
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5974
    b < 0 ifTrue:[b := b + 255].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5975
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5976
    fd    := fdobj instVarNamed: #fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5977
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5978
    [
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5979
        stream nextPut: b
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5980
    ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5981
        self throwIOExceptionWithMessage: ex description
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5982
    ]
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5983
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  5984
    "Modified: / 12-12-2012 / 23:46:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5985
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5986
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5987
_java_io_FileOutputStream_writeBytes: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5989
    <javanative: 'java/io/FileOutputStream' name: 'writeBytes'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5990
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5991
        ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5992
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5993
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5994
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5995
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  5996
_java_io_FileSystem_getFileSystem: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5997
    <javanative: 'java/io/FileSystem' name: 'getFileSystem'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5998
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5999
        ^ (self classForName: 'java.io.UnixFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6000
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6001
    OperatingSystem isMSWINDOWSlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6002
        ^ (Java classForName: 'java.io.WinNTFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6003
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6004
    self error: 'Unknown/Unsupported platform'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6006
    "Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6007
    "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6008
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6009
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6010
_java_io_ObjectInputStream_latestUserDefinedLoader: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6011
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6012
    <javanative: 'java/io/ObjectInputStream' name: 'latestUserDefinedLoader'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6013
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6014
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6015
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6016
    * Returns the first non-null class loader (not counting class loaders of
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6017
    * generated reflection implementation classes) up the execution stack, or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6018
    * null if only code from the null class loader is on the stack.  This
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6019
    * method is also called via reflection by the following RMI-IIOP class:
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6020
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6021
    *     com.sun.corba.se.internal.util.JDKClassLoader
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6022
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6023
    * This method should not be removed or its signature changed without
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6024
    * corresponding modifications to the above class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6025
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6026
    // REMIND: change name to something more accurate?
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6027
    private static native ClassLoader latestUserDefinedLoader();
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6028
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6029
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6030
    | ctx cl |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6031
    ctx := nativeContext.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6032
    [ ctx notNil ] whileTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6033
        ctx receiver isJavaObject ifTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6034
            (cl := ctx receiver class classLoader) notNil ifTrue:[
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  6035
                "/self breakPoint: #jv info: 'Should not count class loaders of generated reflection implementation classes'.
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6036
                "/Please check"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6037
                ^cl.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6038
            ]
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6039
        ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6040
        ctx := ctx sender.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6041
    ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6042
    ^nil
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6043
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  6044
    "Modified: / 30-08-2011 / 16:00:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6045
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6046
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6047
_java_io_ObjectStreamClass_hasStaticInitializer: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6048
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6049
    <javanative: 'java/io/ObjectStreamClass' name: 'hasStaticInitializer'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6050
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6051
    | cls |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6052
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6053
    ^(cls includesSelector: #'<clinit>()V') ifTrue:[1] ifFalse:[0]
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6054
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  6055
    "Modified: / 10-08-2011 / 01:13:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6056
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6057
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6058
_java_io_ObjectStreamClass_initNative: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6059
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6060
    <javanative: 'java/io/ObjectStreamClass' name: 'initNative'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6061
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6062
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6063
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6064
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6065
     * Initializes native code.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6066
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6067
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6068
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6070
    "Created: / 20-12-2010 / 17:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6071
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6072
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6073
_java_io_RandomAccessFile_close0: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6074
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6075
    <javanative: 'java/io/RandomAccessFile' name: 'close0()V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6076
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6077
    ^ self commonClose:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6078
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6079
    "Modified: / 06-07-2012 / 00:09:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6080
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6081
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6082
_java_io_RandomAccessFile_getFilePointer: nativeContext
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6083
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6084
    /**
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6085
     * Returns the current offset in this file.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6086
     *
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6087
     * @return     the offset from the beginning of the file, in bytes,
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6088
     *             at which the next read or write occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6089
     * @exception  IOException  if an I/O error occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6090
     */
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6091
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6092
    <javanative: 'java/io/RandomAccessFile' name: 'getFilePointer()J'>
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6093
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6094
    | file |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6095
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6096
    file := self validateFile:(nativeContext receiver).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6097
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6098
    FileIOTrace ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6099
        ('JAVA: getFilePointer on ' , file pathName) infoPrintCR.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6100
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6101
    ^file position0Based
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6102
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6103
    "Modified: / 06-07-2012 / 12:40:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6104
!
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6105
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6106
_java_io_RandomAccessFile_initIDs: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6107
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6108
    <javanative: 'java/io/RandomAccessFile' name: 'initIDs'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6109
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6110
    "Nothing to do"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6111
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6112
    "Modified: / 10-08-2011 / 21:49:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6113
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6114
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6115
_java_io_RandomAccessFile_length: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6116
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6117
    <javanative: 'java/io/RandomAccessFile' name: 'length()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6118
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6119
        |file sz|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6120
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6121
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6122
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6123
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6124
	('JAVA: length of ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6125
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6126
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6127
    sz := file size.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6128
    ^ sz.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6129
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6130
    "Created: / 4.2.1998 / 13:27:58 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6131
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6132
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6133
_java_io_RandomAccessFile_open: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6134
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6135
    <javanative: 'java/io/RandomAccessFile' name: 'open'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6136
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6137
    |fs fd nm mode filename dir stream fileNo answer readonly|
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6138
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6139
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6140
    fs := nativeContext receiver.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6141
    fd := fs instVarNamed:'fd'.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6142
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6143
        self halt:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6144
        self internalError:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6145
        ^ self.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6146
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6147
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6148
    nm := nativeContext argAt:1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6149
    nm := Java as_ST_String:nm.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6150
    nm := self fixFilename:nm.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6151
    mode := nativeContext argAt:2.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6152
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6153
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6154
    private static final int O_RDONLY = 1;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6155
    private static final int O_RDWR =   2;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6156
    private static final int O_SYNC =   4;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6157
    private static final int O_DSYNC =  8;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6158
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6159
    readonly := (mode bitAnd:1) == 1.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6160
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6161
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6162
        ('JAVA: opening ' , nm) infoPrintCR.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6163
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6164
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6165
    dir := (filename := nm utf8Encoded asFilename) directory pathName.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6166
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6167
    (PermittedDirectories notNil
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6168
    and:[PermittedDirectories includes:dir]) ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6169
        FileOpenConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6170
            answer := Dialog
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6171
                    confirmWithCancel:('JAVA Security check\\Opening ''' , nm , ''' for read/write.\Grant permission ?') withCRs
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6172
                               labels:#('no' 'grant' 'readonly')
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6173
                               values:#(false true #readonly)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6174
                              default:3.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6175
            answer == false ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6176
                self throwIOExceptionWithMessage:('no permission to open ' , nm , ' for writing').
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6177
                ^ self
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6178
            ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6179
            readonly := (answer == #readonly).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6180
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6181
            readonly ifFalse:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6182
                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6183
                ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6184
                    PermittedDirectories isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6185
                        PermittedDirectories := Set new
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6186
                    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6187
                    PermittedDirectories add:dir.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6188
                ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6189
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6190
        ]
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6191
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6192
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6193
    (filename exists not and:[readonly]) ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6194
        self throwIOExceptionWithMessage:'File ', nm , ' does not exist'
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6195
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6196
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6197
    readonly ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6198
        stream := self commonOpenStreamUsing:[filename readStream].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6199
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6200
        stream := self commonOpenStreamUsing:[filename readWriteStream].
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6201
        stream isNil ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6202
            self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6203
        ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6204
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6205
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6206
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6207
    fileNo := self addOpenFile:stream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6208
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6209
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6210
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6211
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6212
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6213
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6214
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6215
    fs finalizationLobby registerChange: fs
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6216
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6217
    "Created: / 04-02-1998 / 00:14:48 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6218
    "Modified: / 12-11-1998 / 21:29:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6219
    "Modified: / 23-07-2012 / 19:37:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6220
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6221
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6222
_java_io_RandomAccessFile_read: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6223
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6224
    <javanative: 'java/io/RandomAccessFile' name: 'read()I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6225
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6226
        |file byte|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6227
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6228
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6229
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6230
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6231
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6232
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6233
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6234
    byte := file nextByte.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6235
    byte isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6236
	^ -1
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6237
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6238
    ^ byte
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6239
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6240
    "Modified: / 5.1.1998 / 02:17:25 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6241
    "Created: / 27.1.1999 / 19:01:15 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6242
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6243
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6244
_java_io_RandomAccessFile_readBytes: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6245
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6246
    <javanative: 'java/io/RandomAccessFile' name: 'readBytes([BII)I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6247
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6248
    ^ self anyStream_readBytes:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6249
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6250
    "Modified: / 04-02-1998 / 15:23:27 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6251
    "Modified (format): / 06-07-2012 / 00:08:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6252
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6253
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6254
_java_io_RandomAccessFile_seek: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6255
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6256
    <javanative: 'java/io/RandomAccessFile' name: 'seek(J)V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6257
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6258
        |file pos|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6259
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6260
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6261
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6262
    FileIOTrace ifTrue:[
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6263
        ('JAVA: seek on ' , file pathName) infoPrintCR.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6264
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6265
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6266
    pos := nativeContext argAt:1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6267
    file position0Based:pos
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6268
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6269
    "Created: / 04-02-1998 / 13:25:38 / cg"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6270
    "Modified (comment): / 06-07-2012 / 12:39:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6271
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6272
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6273
_java_io_RandomAccessFile_writeBytes: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6274
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6275
    <javanative: 'java/io/RandomAccessFile' name: 'writeBytes([BII)V'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6276
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6277
        ^ self anyStream_writeBytes:nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6278
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6279
    "Modified: / 4.2.1998 / 15:24:20 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6280
    "Created: / 4.2.1998 / 15:24:35 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6281
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6282
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6283
_java_io_UnixFileSystem_canonicalize0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6285
    <javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6286
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6287
    |  path |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6288
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6289
    path := Java as_ST_String: (aJavaContext argAt: 1).
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  6290
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6291
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6292
    "Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6293
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6294
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6295
_java_io_UnixFileSystem_checkAccess: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6296
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6297
    <javanative: 'java/io/UnixFileSystem' name: 'checkAccess'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6298
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6299
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6300
     public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6301
     public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6302
     public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6303
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6304
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6305
    | fileobj file access result |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6306
    fileobj := nativeContext argAt:1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6307
    file := (Java as_ST_String:(fileobj instVarNamed:#path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6308
    access := nativeContext argAt:2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6309
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6310
        access == 16r01 ifTrue:[result := file isExecutable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6311
        access == 16r02 ifTrue:[result := file isWritable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6312
        access == 16r04 ifTrue:[result := file isReadable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6313
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6314
        result := false.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6315
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6316
    ^result ifTrue:[1] ifFalse:[0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6317
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6318
    "Modified: / 09-08-2011 / 17:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6319
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6320
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6321
_java_io_UnixFileSystem_createDirectory: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6322
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6323
    <javanative: 'java/io/UnixFileSystem' name: 'createDirectory'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6324
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6325
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6326
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6327
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6328
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6329
    file exists ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6330
        [
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6331
            file recursiveMakeDirectory.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6332
            ^1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6333
        ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6334
            self throwIOExceptionWithMessage:ex description.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6335
        ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6336
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6337
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6338
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6339
    "Modified: / 05-12-2011 / 23:04:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6340
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6341
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6342
_java_io_UnixFileSystem_createFileExclusively: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6343
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6344
    <javanative: 'java/io/UnixFileSystem' name: 'createFileExclusively'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6345
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6346
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6347
    file := Java as_ST_String: (nativeContext argAt:1).
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6348
    file := file asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6349
    file exists ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6350
        [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6351
            file createAsEmptyFile
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6352
        ] on: Error do:[:ex|
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6353
            self throwIOExceptionWithMessage:ex description.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6354
        ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6355
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6356
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6357
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6358
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6359
    "Modified: / 10-08-2011 / 13:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6360
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6361
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6362
_java_io_UnixFileSystem_delete0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6363
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6364
    <javanative: 'java/io/UnixFileSystem' name: 'delete0'>
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6365
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6366
      /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6367
      * Delete the file or directory denoted by the given abstract pathname,
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6368
      * returning <code>true</code> if and only if the operation succeeds.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6369
      */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6370
      public abstract boolean delete(File f);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6371
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6372
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6373
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6374
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6375
    file exists ifFalse:[^0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6376
    ^[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6377
        file remove.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6378
        true
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6379
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6380
        false
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6381
    ]
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6382
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6383
    "Modified: / 09-08-2011 / 17:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6384
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6385
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6386
_java_io_UnixFileSystem_getBooleanAttributes0: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6387
    <javanative: 'java/io/UnixFileSystem' name: 'getBooleanAttributes0'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6388
    | file  path  retval  fileSystemClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6389
    retval := 0.
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  6390
    file := (aJavaContext argAt: 1).
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  6391
    path := Java as_ST_String: ((aJavaContext argAt: 1) perform: #'getAbsolutePath()Ljava/lang/String;').
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6392
    fileSystemClass := (self classForName: 'java.io.FileSystem').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6393
    path asFilename exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6394
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_EXISTS')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6395
    ] ifFalse: [ ^ 0. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6396
    path asFilename isDirectory ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6397
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_DIRECTORY')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6398
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6399
    path asFilename isRegularFile ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6400
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_REGULAR')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6401
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6402
    path asFilename isHidden ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6403
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_HIDDEN')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6404
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6405
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6407
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6408
    "Created: / 10-12-2010 / 14:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6409
    "Modified: / 11-12-2010 / 19:44:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  6410
    "Modified: / 03-11-2011 / 11:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6411
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6412
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6413
_java_io_UnixFileSystem_getLastModifiedTime: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6414
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6415
    <javanative: 'java/io/UnixFileSystem' name: 'getLastModifiedTime'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6416
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6417
    | file  filename  |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6418
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6419
    file := aJavaContext argAt: 1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6420
    filename := (Java as_ST_String: (file instVarNamed: #path)) utf8Encoded asFilename.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6421
    ^filename exists ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6422
        filename modificationTime asMilliseconds
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6423
    ] ifFalse:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6424
        0
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6425
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6427
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6428
    "Created: / 27-03-2011 / 15:32:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6429
    "Modified: / 06-07-2012 / 08:57:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6430
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6431
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6432
_java_io_UnixFileSystem_getLength: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6433
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6434
    <javanative: 'java/io/UnixFileSystem' name: 'getLength'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6435
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6436
    | file |
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6437
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6438
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6439
    file exists ifFalse:[^0].
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6440
    ^file fileSize
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6441
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6442
    "Modified: / 09-08-2011 / 15:38:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6443
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6444
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6445
_java_io_UnixFileSystem_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6447
    <javanative: 'java/io/UnixFileSystem' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6448
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6449
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6450
    self breakPoint: #libjava
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6451
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6452
    "Created: / 10-12-2010 / 14:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6453
    "Modified: / 10-12-2010 / 20:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6454
!
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6455
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6456
_java_io_UnixFileSystem_list: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6457
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6458
    <javanative: 'java/io/UnixFileSystem' name: #'list(Ljava/io/File;)[Ljava/lang/String;'>
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6459
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6460
    /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6461
    * Returns an array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6462
    * directory denoted by this abstract pathname.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6463
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6464
    * <p> If this abstract pathname does not denote a directory, then this
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6465
    * method returns {@code null}.  Otherwise an array of strings is
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6466
    * returned, one for each file or directory in the directory.  Names
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6467
    * denoting the directory itself and the directory's parent directory are
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6468
    * not included in the result.  Each string is a file name rather than a
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6469
    * complete path.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6470
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6471
    * <p> There is no guarantee that the name strings in the resulting array
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6472
    * will appear in any specific order; they are not, in particular,
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6473
    * guaranteed to appear in alphabetical order.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6474
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6475
    * @return  An array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6476
    *          directory denoted by this abstract pathname.  The array will be
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6477
    *          empty if the directory is empty.  Returns {@code null} if
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6478
    *          this abstract pathname does not denote a directory, or if an
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6479
    *          I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6480
    */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6481
   "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6482
    | fileobj file names jnames |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6483
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6484
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6485
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6486
    file exists ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6487
    file isDirectory ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6488
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6489
    names := file directoryContents.
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6490
    jnames := (Java at:'java.lang.String') javaArrayClass new: names size.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6491
    1 to: names size do:[:i|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6492
        jnames at: i put: (Java as_String:(names at: i))
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6493
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6494
    ^jnames
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6495
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6496
    "Modified: / 23-07-2012 / 21:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6497
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6498
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6499
_java_io_UnixFileSystem_rename0: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6500
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6501
    <javanative: 'java/io/UnixFileSystem' name: 'rename0(Ljava/io/File;Ljava/io/File;)Z'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6502
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6503
    | file1 file2 |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6504
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6505
    file1 := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6506
    file2 := (Java as_ST_String: ((nativeContext argAt:2) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6507
    file1 exists ifFalse:[^0].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6508
    ^[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6509
        file1 moveTo: file2.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6510
        true
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6511
    ] on: Error do:[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6512
        false
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6513
    ]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6514
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6515
    "Modified: / 09-12-2011 / 20:01:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6516
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6517
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6518
_java_io_UnixFileSystem_setLastModifiedTime: nativeContext
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6519
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6520
    <javanative: 'java/io/UnixFileSystem' name: 'setLastModifiedTime(Ljava/io/File;J)Z'>
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6521
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6522
    | f mtime file |
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6523
    f := nativeContext argAt: 1.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6524
    mtime := nativeContext argAt: 2.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6525
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6526
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6527
    self breakPoint: #jv. "There is no interface for that in St/X"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6528
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6529
    "Modified: / 05-12-2011 / 23:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6530
!
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6531
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6532
_java_io_UnixFileSystem_setPermission: nativeContext
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6533
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6534
    <javanative: 'java/io/UnixFileSystem' name: 'setPermission'>
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6535
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6536
    /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6537
     * Set on or off the access permission (to owner only or to all) to the file
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6538
     * or directory denoted by the given abstract pathname, based on the parameters
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6539
     * enable, access and oweronly.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6540
     */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6541
    public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6542
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6543
    | f access enable owneronly file perms |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6544
    f := nativeContext argAt: 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6545
    access := nativeContext argAt: 2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6546
    enable := (nativeContext argAt: 3) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6547
    owneronly := (nativeContext argAt: 4) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6548
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6549
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6550
    public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6551
    public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6552
    public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6553
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6554
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6555
    access == 16r04 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6556
        perms := owneronly ifFalse:[#(readUser readGroup readOthers)] ifTrue:[#(readUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6557
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6558
    access == 16r02 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6559
        perms := owneronly ifFalse:[#(writeUser writeGroup writeOthers)] ifTrue:[#(writeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6560
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6561
    access == 16r01 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6562
        perms := owneronly ifFalse:[#(executeUser executeGroup executeOthers)] ifTrue:[#(executeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6563
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6564
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6565
        enable ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6566
            file addAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6567
        ] ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6568
            file removeAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6569
        ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6570
        ^ 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6571
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6572
        ^ 0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6573
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6574
    ^0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6575
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6576
    "Modified: / 09-08-2011 / 17:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6577
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6578
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6579
_java_io_UnixFileSystem_setReadOnly: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6580
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6581
    <javanative: 'java/io/UnixFileSystem' name: 'setReadOnly'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6582
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6583
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6584
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6585
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6586
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6587
    file exists ifFalse:[^0].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6588
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6589
        file  removeAccessRights: #(writeUser writeGroup writeOthers).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6590
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6591
    ] on: Error do:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6592
        ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6593
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6594
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6595
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6596
    "Modified: / 10-08-2011 / 13:40:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6597
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6598
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6599
_java_io_Win32FileSystem_initIDs: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6600
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6601
    <javanative: 'java/io/Win32FileSystem' name: 'initIDs()V'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6602
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6603
    "Intentionally left blank"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6604
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6605
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6606
_java_io_WinNTFileSystem_canonicalize0: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6607
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6608
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalize0(Ljava/lang/String;)Ljava/lang/String;'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6609
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6610
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6611
    |  path |
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6612
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6613
    path := Java as_ST_String: (aJavaContext argAt: 1).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6614
    ^(Java as_String: path asFilename asAbsoluteFilename pathName)
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6615
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6616
    "Created: / 01-04-2011 / 23:00:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6617
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6618
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6619
_java_io_WinNTFileSystem_canonicalizeWithPrefix0: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6620
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6621
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalizeWithPrefix0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6622
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6623
    |  path |
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6624
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6625
    path := Java as_ST_String: (nativeContext argAt: 2).
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6626
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6627
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6628
    "Modified: / 01-09-2011 / 21:50:47 / jv"
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6629
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6630
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6631
_java_io_WinNTFileSystem_checkAccess: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6632
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6633
    <javanative: 'java/io/WinNTFileSystem' name: 'checkAccess(Ljava/io/File;I)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6634
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6635
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6636
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6637
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6638
_java_io_WinNTFileSystem_createDirectory: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6639
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6640
    <javanative: 'java/io/WinNTFileSystem' name: 'createDirectory(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6641
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6642
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6643
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6644
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6645
_java_io_WinNTFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6646
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6647
    <javanative: 'java/io/WinNTFileSystem' name: 'createFileExclusively(Ljava/lang/String;)Z'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6648
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6649
    ^ self _java_io_UnixFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6650
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6651
    "Modified: / 18-08-2011 / 17:26:11 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6652
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6653
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6654
_java_io_WinNTFileSystem_delete0: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6655
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6656
    <javanative: 'java/io/WinNTFileSystem' name: 'delete0(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6657
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6658
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6659
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6660
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6661
_java_io_WinNTFileSystem_getBooleanAttributes: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6662
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6663
    <javanative: 'java/io/WinNTFileSystem' name: 'getBooleanAttributes(Ljava/io/File;)I'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6664
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6665
    ^ self _java_io_UnixFileSystem_getBooleanAttributes0:aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6666
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6667
    "Created: / 01-04-2011 / 18:10:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6668
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6669
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6670
_java_io_WinNTFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6671
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6672
    <javanative: 'java/io/WinNTFileSystem' name: 'getLastModifiedTime(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6673
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6674
    ^ self _java_io_UnixFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6675
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6676
    "Modified: / 18-08-2011 / 14:12:07 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6677
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6678
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6679
_java_io_WinNTFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6680
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6681
    <javanative: 'java/io/WinNTFileSystem' name: 'getLength(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6682
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6683
    ^ self _java_io_UnixFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6684
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6685
    "Modified: / 18-08-2011 / 14:15:36 / jv"
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6686
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6687
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6688
_java_io_WinNTFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6689
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6690
    <javanative: 'java/io/WinNTFileSystem' name: 'list(Ljava/io/File;)[Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6691
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6692
    ^ self _java_io_UnixFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6693
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6694
    "Modified: / 01-09-2011 / 21:46:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6695
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6696
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6697
!JavaVM class methodsFor:'native - java.lang'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6698
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6699
_java_lang_ClassLoader_NativeLibrary_load: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6700
    <javanative: 'java/lang/ClassLoader$NativeLibrary' name: 'load'>
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6701
    "/ introduced with jdk1.2 ... (sigh)
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6702
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6703
    | nativeLoader  jLibName  libName  libHandle  index |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6704
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6705
    nativeLoader := nativeContext receiver.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6706
    jLibName := nativeContext argAt: 1.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6707
    libName := (Java as_ST_String: jLibName) asFilename baseName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6708
    (index := SimulatedNativeLibs indexOf: libName) ~~ 0 ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6709
        "/        ('JAVA: builtIn nativeLibLoad simulated: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6710
        nativeLoader instVarNamed: 'handle' put: index.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6711
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6712
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6713
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6714
    (LoadedNativeLibs notNil and: [ LoadedNativeLibs includesKey: libName ]) ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6715
        "/        ('JAVA: native library already loaded: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6716
        nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6717
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6718
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6719
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6720
    (self confirm: 'permission to load native library: ' , libName , ' ?') ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6721
        ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6722
    ].
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6723
    self halt.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6724
    libName asFilename exists ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6725
        ('JAVA: no file to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6726
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6727
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6728
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6729
    libHandle := ObjectFileLoader loadLibrary: libName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6730
    libHandle isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6731
        ('JAVA: failed to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6732
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6733
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6734
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6735
    LoadedNativeLibs isNil ifTrue: [ LoadedNativeLibs := Dictionary new. ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6736
    LoadedNativeLibs at: libName put: libHandle.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6737
    nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6738
    ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6739
    "/ void
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6740
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6741
    "Modified: / 06-02-1998 / 03:12:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6742
    "Created: / 10-12-2010 / 15:11:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  6743
    "Modified: / 03-11-2011 / 18:25:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6744
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6745
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6746
_java_lang_ClassLoader_defineClass1: nativeContext
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6747
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6748
    "
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6749
     private native Class defineClass1(String name, byte[] b, int off, int len,
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6750
                                      ProtectionDomain pd, String source);"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6751
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6752
    | className  b  off  len  pd  source  bs  cls |
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6753
    className := Java as_ST_String: (nativeContext argAt: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6754
    "if name starts with java.* or package is signed by something else and we are not signed, throw security exception"
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6755
    "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6756
    "18.11. mh revised - they really test it against java., totally ignoring boot class path.. That surpsised me"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6757
    (className startsWith: 'java.') ifTrue: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6758
        self throwSecurityExceptionWith: 'className=' , className
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6759
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6760
    cls := nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6761
    b := nativeContext argAt: 2.
1701
06bcd06f766d define class now throws null pointer exception
hlopkmar
parents: 1698
diff changeset
  6762
    b ifNil: [self throwNullPointerException].
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6763
    off := nativeContext argAt: 3.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6764
    len := nativeContext argAt: 4.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6765
    pd := nativeContext argAt: 5.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6766
    source := Java as_ST_String: (nativeContext argAt: 6).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6767
    bs := (off = 0 and: [ len = b size ])
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6768
        ifTrue: [ b readStream ]
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6769
        ifFalse: [ bs := (b copyFrom: off + 1 to: off + len) readStream ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6770
    [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6771
        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6772
            do: [ cls := JavaClassReader readStream: bs. ]
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6773
    ] on: JavaClassReader invalidClassFormatSignal
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6774
            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6775
        :ex |
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6776
        self throwClassFormatError: ex description.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6777
        ^ nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6778
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6779
    self assert: cls classLoader == nativeContext receiver.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6780
     "FIXME: What to do with source?"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6781
    self registry registerClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6782
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6783
        do: [ cls resolveAll. ]."
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6784
    ^ self reflection javaClassObjectForClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6785
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6786
    "Modified: / 08-12-2011 / 20:56:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6787
    "Modified: / 20-02-2012 / 23:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1701
06bcd06f766d define class now throws null pointer exception
hlopkmar
parents: 1698
diff changeset
  6788
    "Modified: / 10-09-2012 / 22:21:22 / m"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6789
!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6790
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6791
_java_lang_ClassLoader_defineClass1_OLD: nativeContext
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6792
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6793
    "
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6794
     private native Class defineClass1(String name, byte[] b, int off, int len,
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6795
                                      ProtectionDomain pd, String source);"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6796
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6797
    | className  b  off  len  pd  source  bs  cls |
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6798
    className := Java as_ST_String: (nativeContext argAt: 1).
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6799
     "if name starts with java.* or package is signed by something else and we are not signed, throw security exception" "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject" "18.11. mh revised - they really test it against java., totally ignoring boot class path.. That surpsised me"
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6800
    (className startsWith: 'java.') ifTrue: [
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6801
        self throwSecurityExceptionWith: 'className=' , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6802
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6803
    cls := ClassRegistry
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6804
                classForName: className asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6805
                loader: nativeContext receiver
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6806
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6807
                    b := nativeContext argAt: 2.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6808
                    off := nativeContext argAt: 3.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6809
                    len := nativeContext argAt: 4.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6810
                    pd := nativeContext argAt: 5.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6811
                    source := Java as_ST_String: (nativeContext argAt: 6).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6812
                    (off = 0 and: [ len = b size ]) ifTrue: [ bs := b readStream ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6813
                        bs := (b copyFrom: off + 1 to: off + len) readStream
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6814
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6815
                    [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6816
                        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6817
                            do: [ cls := JavaClassReader readStream: bs. ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6818
                    ] on: JavaClassReader invalidClassFormatSignal
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6819
                            do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6820
                        :ex |
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6821
                        self throwClassFormatError: ex description.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6822
                        ^ nil.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6823
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6824
                    self assert: cls classLoader == nativeContext receiver.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6825
                     "FIXME: What to do with source?"
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6826
                    cls.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6827
                ].
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6828
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6829
        do: [ cls resolveAll. ]."
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6830
    ^ self reflection javaClassObjectForClass: cls.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6831
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6832
    "Modified: / 30-10-2011 / 21:46:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6833
    "Modified: / 08-12-2011 / 20:56:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6834
    "Created: / 20-02-2012 / 23:10:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6835
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6836
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6837
_java_lang_ClassLoader_findBootstrapClass: nativeContext
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6838
    <javanative: 'java/lang/ClassLoader' name: 'findBootstrapClass'>
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6839
    "Return class loaded by bootstrap (primordial) classloader or null.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6840
     See OpenJDK, file src/jdk7/hostspot/src/share/vm/prims/jvm.cpp"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6841
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6842
    | nm  class |
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6843
    nm := Java as_ST_String: (nativeContext argAt: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6844
    class := ClassRegistry
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6845
                classForName: nm asSlashedJavaClassName
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6846
                loader: nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6847
                ifAbsentPut: [ class := JavaVM usePrimordialCLToLoadClassNamed: nm. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6848
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6849
    ^ class notNil
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6850
        ifTrue: [ self reflection javaClassObjectForClass: class ]
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6851
        ifFalse: [ self throwClassNotFoundException: nm ].
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6852
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6853
    "Modified: / 30-10-2011 / 21:45:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6854
    "Modified: / 02-11-2011 / 20:13:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6855
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6856
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6857
_java_lang_ClassLoader_findLoadedClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6858
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6859
    <javanative: 'java/lang/ClassLoader' name: 'findLoadedClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6860
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6861
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6862
    Return java class object for class with given name
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6863
    loaded by the receiver or null if not found.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6864
    See OpenJDK:
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6865
        src/jdk7/hostspot/src/share/vm/classfile/systemDictionary.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6866
        src/jdk7/hostspot/src/share/vm/prims/jvm.cpp
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6867
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6868
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6869
    | nm class |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6870
    nm := Java as_ST_String: (nativeContext argAt:1).
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6871
    class := ClassRegistry classNamed: nm asSlashedJavaClassName loader: nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6872
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6873
    ^class notNil ifTrue: [
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6874
        self reflection javaClassObjectForClass:class
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6875
    ] ifFalse:[
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6876
        nil
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6877
    ]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6878
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6879
    "Modified: / 30-10-2011 / 21:48:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6880
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6881
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6882
_java_lang_ClassLoader_getCaller: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6883
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6884
    <javanative: 'java/lang/ClassLoader' name: ''>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6885
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6886
    // index 0: java.lang.ClassLoader.class
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6887
    // index 1: the immediate caller of index 0.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6888
    // index 2: the immediate caller of index 1.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6889
    private static native Class<? extends ClassLoader> getCaller(int index);
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6890
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6891
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6892
    | ctx receiver |
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6893
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6894
    ctx := nativeContext.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6895
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6896
    (nativeContext argAt:1) timesRepeat:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6897
        ctx := ctx sender.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6898
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6899
    receiver := ctx receiver.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6900
    receiver isJavaClass ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6901
        receiver := Reflection javaClassObjectForClass: receiver.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6902
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6903
    ^receiver
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6904
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6905
    "Modified: / 03-09-2012 / 18:50:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6906
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  6907
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6908
_java_lang_ClassLoader_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6909
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6910
    <javanative: 'java/lang/ClassLoader' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6911
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6912
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6913
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6914
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6915
    "Created: / 09-11-2010 / 20:55:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6916
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6917
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6918
_java_lang_ClassLoader_resolveClass0: nativeContext
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6919
    <javanative: 'java/lang/ClassLoader' name: 'resolveClass0'>
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  6920
    "resolve a new class as previously created by defineClass0"
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6921
    "or to be more precise - link class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6922
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6923
    | jClassLoader  jCls  cls |
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6924
    jClassLoader := nativeContext receiver.
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6925
    jCls := nativeContext argAt: 1.
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6926
    jCls isNil ifTrue: [
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6927
        self throwNullPointerException.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6928
        ^ nil
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6929
    ].
1026
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6930
    cls := self reflection classForJavaClassObject: jCls.
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6931
    self assert: cls notNil.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6932
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6933
     do: [ "cls resolveAll." ].
1150
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6934
    ^ cls.
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6935
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6936
    "
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6937
        Links the specified class.  This (misleadingly named) method may be
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6938
        * used by a class loader to link a class.  If the class <tt>c</tt> has
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6939
        * already been linked, then this method simply returns. Otherwise, the
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6940
        * class is linked as described in the Execution chapter of the <a
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6941
        * href=http://java.sun.com/docs/books/jls/>Java Language
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6942
        * Specification</a>.
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6943
        * </p>
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6944
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6945
        * @param  c
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6946
        *         The class to link
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6947
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6948
        * @throws  NullPointerException
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6949
         *          If <tt>c</tt> is <tt>null</tt>."
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6950
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6951
    "Created: / 07-01-1998 / 13:12:27 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6952
    "Modified: / 20-10-1998 / 19:01:57 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6953
    "Modified: / 28-01-2011 / 15:28:18 / Marcel Hlopko <hlopik@gmail.com>"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6954
    "Modified: / 08-12-2011 / 20:52:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6955
    "Modified: / 12-12-2011 / 14:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6956
!
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6957
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6958
_java_lang_ClassLoader_retrieveDirectives: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6959
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6960
    <javanative: 'java/lang/ClassLoader' name: 'retrieveDirectives()Ljava/lang/AssertionStatusDirectives;'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6961
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6962
    | directives |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6963
    directives := (self classForName:'java.lang.AssertionStatusDirectives') new.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6964
    directives instVarNamed:#classes
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6965
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6966
    directives instVarNamed:#classEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6967
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6968
    directives instVarNamed:#packages
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6969
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6970
    directives instVarNamed:#packageEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6971
        put: (Boolean javaArrayClass new:0).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6972
    directives instVarNamed:#deflt
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6973
        put: ((AssertionsEnabled == true) ifTrue:[1] ifFalse:[0]).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6974
    ^directives
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6975
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6976
    "Modified: / 06-07-2012 / 08:49:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6977
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6978
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6979
_java_lang_Class_desiredAssertionStatus0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6981
    <javanative: 'java/lang/Class' name: 'desiredAssertionStatus0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6982
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6983
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6984
    ^AssertionsEnabled == true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6985
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6986
    "Created: / 24-11-2010 / 08:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6987
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6988
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  6989
_java_lang_Class_forName0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6990
    <javanative: 'java/lang/Class' name: 'forName0'>
1205
vranyj1
parents: 1204
diff changeset
  6991
    |nm initialize loader class descriptor|
vranyj1
parents: 1204
diff changeset
  6992
vranyj1
parents: 1204
diff changeset
  6993
    nm := Java as_ST_String:(aJavaContext argAt:1).
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6994
     "Using Class.forName() to get a primitive type is not allowed"
1205
vranyj1
parents: 1204
diff changeset
  6995
    (nm size == 1 and:[JavaDescriptor baseTypes includesKey:nm first]) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6996
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  6997
    ].
vranyj1
parents: 1204
diff changeset
  6998
    (JavaDescriptor baseTypesByTypeName includesKey:nm) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6999
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  7000
    ].
vranyj1
parents: 1204
diff changeset
  7001
    initialize := aJavaContext argAt:2.
vranyj1
parents: 1204
diff changeset
  7002
    loader := aJavaContext argAt:3.
vranyj1
parents: 1204
diff changeset
  7003
    JavaClassReader classLoaderQuerySignal answer:loader do:[
vranyj1
parents: 1204
diff changeset
  7004
        (nm first == $[) ifTrue:[
vranyj1
parents: 1204
diff changeset
  7005
            |nms|
vranyj1
parents: 1204
diff changeset
  7006
vranyj1
parents: 1204
diff changeset
  7007
            nms := nm readStream.
vranyj1
parents: 1204
diff changeset
  7008
            descriptor := JavaDescriptor readFrom:nms
vranyj1
parents: 1204
diff changeset
  7009
                        onError:[^ self throwClassNotFoundException:nm].
vranyj1
parents: 1204
diff changeset
  7010
            nms atEnd ifFalse:[
vranyj1
parents: 1204
diff changeset
  7011
                ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  7012
            ].
vranyj1
parents: 1204
diff changeset
  7013
            class := descriptor javaClass.
vranyj1
parents: 1204
diff changeset
  7014
        ] ifFalse:[
vranyj1
parents: 1204
diff changeset
  7015
            class := self classForName:nm
vranyj1
parents: 1204
diff changeset
  7016
        ]
vranyj1
parents: 1204
diff changeset
  7017
    ].
vranyj1
parents: 1204
diff changeset
  7018
    class isNil ifTrue:[
vranyj1
parents: 1204
diff changeset
  7019
        ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  7020
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7021
    ((initialize ~~ 0)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7022
        and:[class isJavaArrayClass not and:[class isJavaPrimitiveType not]])
1205
vranyj1
parents: 1204
diff changeset
  7023
            ifTrue:[
vranyj1
parents: 1204
diff changeset
  7024
                [class classInit] on:Error do:[self throwExceptionInInitializerError:nm]
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  7025
            ].
1205
vranyj1
parents: 1204
diff changeset
  7026
    ^ JavaVM javaClassObjectForClass:class.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7027
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7028
    "Created: / 24-11-2010 / 09:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
vranyj1
parents: 1062
diff changeset
  7029
    "Modified: / 30-10-2011 / 23:30:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  7030
    "Modified: / 02-11-2011 / 19:12:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1205
vranyj1
parents: 1204
diff changeset
  7031
    "Modified (format): / 03-12-2011 / 10:49:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7032
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7034
_java_lang_Class_getClassLoader0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7035
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7036
    <javanative: 'java/lang/Class' name: 'getClassLoader0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7037
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7038
    "get a classes loader"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7039
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7040
    |jClass cls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7041
    jClass := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7042
    cls := self reflection classForJavaClassObject:jClass.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7043
    ^cls javaMirror getClassLoader
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7045
    "Created: / 25-10-2010 / 22:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7046
    "Modified: / 28-01-2011 / 15:18:54 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7047
    "Modified (format): / 31-07-2012 / 18:33:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7048
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7049
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7050
_java_lang_Class_getComponentType: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7052
    <javanative: 'java/lang/Class' name: 'getComponentType'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7053
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7054
        |cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7055
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7056
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7057
    cls isJavaPrimitiveType ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7058
        self breakPoint:#jv.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7059
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7060
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7061
    ^ self javaClassObjectForClass:cls javaComponentClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7063
    "Created: / 12-11-1998 / 18:54:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7064
    "Modified: / 20-12-2010 / 22:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7065
    "Modified: / 28-01-2011 / 15:18:59 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7066
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7067
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7068
_java_lang_Class_getConstantPool: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7070
    <javanative: 'java/lang/Class' name: 'getConstantPool'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7071
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7072
        | class |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7073
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7074
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7075
    class isJavaClass ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7076
        ^nil
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  7077
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7078
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7079
    ^ self reflection javaConstantPoolObjectFor:class constantPool.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7081
    "Created: / 21-12-2010 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7082
    "Modified: / 28-02-2011 / 18:05:13 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7083
    "Modified: / 31-07-2012 / 00:47:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7084
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7085
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7086
_java_lang_Class_getDeclaredClasses0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7087
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7088
    <javanative: 'java/lang/Class' name: 'getDeclaredClasses0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7089
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7090
    | class innerPrefix inners |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7091
    class := self reflection classForJavaClassObject: nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7092
    innerPrefix := class name , '$'.
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7093
    inners := Set new.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7094
    JAVA allClassesDo:[:cls|
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  7095
        ((cls name startsWith: innerPrefix) and:[(cls name indexOf: $$ startingAt: innerPrefix size) == 0]) ifTrue:[
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7096
            inners add: (self reflection javaClassObjectForClass: cls)
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7097
        ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7098
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7099
    ^(Java at: 'java.lang.Class') javaArrayClass withAll: inners
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  7100
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  7101
    "Modified: / 31-07-2012 / 12:07:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7102
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7103
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7104
_java_lang_Class_getDeclaredConstructors0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7105
    <javanative: 'java/lang/Class' name: 'getDeclaredConstructors0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7106
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7107
    | class publicOnly |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7108
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7109
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7110
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7111
    ^class javaMirror getDeclaredConstructors: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7112
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7113
    "Created: / 24-11-2010 / 09:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7114
    "Modified: / 09-02-2011 / 01:24:03 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7115
    "Modified (format): / 01-08-2012 / 11:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7116
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7117
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7118
_java_lang_Class_getDeclaredFields0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7119
    <javanative: 'java/lang/Class' name: 'getDeclaredFields0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7120
    |javaClassObject class fields publicOnly|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7121
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7122
    class := self reflection
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7123
                classForJavaClassObject:(javaClassObject := aJavaContext argAt:0).
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7124
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7125
        ^(self classForName:'java.lang.reflect.Field') javaArrayClass new:0.
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7126
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7127
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7128
    publicOnly := (aJavaContext argAt:1) == 1.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7129
    fields := class javaMirror getDeclaredFields: publicOnly.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7130
    ^fields
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7132
    "Created: / 10-11-2010 / 16:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7133
    "Modified: / 28-01-2011 / 15:19:06 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7134
    "Modified: / 22-08-2012 / 12:16:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7135
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7136
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7137
_java_lang_Class_getDeclaredMethods0:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7138
    <javanative: 'java/lang/Class' name: 'getDeclaredMethods0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7139
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7140
    | class publicOnly |
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7141
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7142
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7143
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7144
    ^class javaMirror getDeclaredMethods: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7145
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7146
    "Created: / 21-12-2010 / 22:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7147
    "Modified: / 28-01-2011 / 15:19:09 / Marcel Hlopko <hlopik@gmail.com>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
  7148
    "Modified: / 04-06-2011 / 17:07:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  7149
    "Modified: / 01-08-2012 / 11:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7150
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7151
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7152
_java_lang_Class_getDeclaringClass: nativeContext
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7153
    <javanative: 'java/lang/Class' name: 'getDeclaringClass'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7154
    "
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7155
     /**
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7156
     * If the class or interface represented by this {@code Class} object
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7157
     * is a member of another class, returns the {@code Class} object
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7158
     * representing the class in which it was declared.  This method returns
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7159
     * null if this class or interface is not a member of any other class.  If
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7160
     * this {@code Class} object represents an array class, a primitive
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7161
     * type, or void,then this method returns null.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7162
     *
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7163
     * @return the declaring class for this class
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7164
     * @since JDK1.1
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7165
     */"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7166
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7167
    | cls  enclosingClsName  enclosingCls |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7168
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7169
    cls := self reflection classForJavaClassObject: (nativeContext receiver).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7170
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7171
    (cls name includes: $$) ifFalse: [ ^ nil ].
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7172
    enclosingClsName := cls name copyTo: (cls name lastIndexOf: $$) - 1.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7173
    enclosingCls := self classForName: enclosingClsName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7174
    enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7175
    ^ self reflection javaClassObjectForClass: enclosingCls
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7176
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7177
    "Modified: / 13-08-2011 / 02:01:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7178
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7179
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7180
_java_lang_Class_getEnclosingMethod0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7181
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7182
    <javanative: 'java/lang/Class' name: 'getEnclosingMethod0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7183
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7184
    ^nil "/Not true"
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7185
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7186
    "Modified: / 14-08-2011 / 20:05:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7187
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7188
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7189
_java_lang_Class_getGenericSignature: nativeContext
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7190
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7191
    <javanative: 'java/lang/Class' name: 'getGenericSignature'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7192
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7193
    |cls sig |
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7194
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7195
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7196
    sig := cls javaMirror getGenericSignature.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7197
    ^sig notNil ifTrue:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7198
        Java as_String: sig
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7199
    ] ifFalse:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7200
        nil
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7201
    ]
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7202
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7203
    "Modified: / 22-08-2012 / 11:58:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7204
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7205
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7206
_java_lang_Class_getInterfaces:nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7207
    <javanative: 'java/lang/Class' name: 'getInterfaces'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7208
    |jClass cls interfaces jInterfaces|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7210
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7211
    cls := self reflection classForJavaClassObject:jClass.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7212
    interfaces := cls javaMirror getInterfaces.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7213
    jInterfaces := (self classForName:'java.lang.Class') javaArrayClass new:interfaces size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7214
    interfaces
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7215
        withIndexDo:[:iface :idx | jInterfaces at:idx put:(self javaClassObjectForClass:iface) ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7216
    ^ jInterfaces
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7217
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7218
    "Modified: / 28-01-2011 / 15:19:11 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7219
    "Modified: / 22-08-2012 / 11:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7220
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7221
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7222
_java_lang_Class_getModifiers: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7223
    <javanative: 'java/lang/Class' name: 'getModifiers'>
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7224
    | cls |
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7225
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7226
    cls := (self reflection classForJavaClassObject: aJavaContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7227
    ^cls javaMirror getModifiers
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7229
    "Created: / 12-11-1998 / 18:54:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7230
    "Modified: / 28-01-2011 / 15:19:14 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7231
    "Modified: / 22-08-2012 / 11:04:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7232
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7234
_java_lang_Class_getName0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7236
    <javanative: 'java/lang/Class' name: 'getName0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7238
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7240
    class := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7241
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7242
    ^ self reflection
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7243
        javaStringObjectForString:class javaMirror getName
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7244
        interned:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7245
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7246
    "Created: / 22-11-2010 / 17:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7247
    "Modified: / 09-02-2011 / 01:06:53 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7248
    "Modified: / 22-08-2012 / 10:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7249
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7251
_java_lang_Class_getPrimitiveClass: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7253
    <javanative: 'java/lang/Class' name: 'getPrimitiveClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7255
        "get a primitive class by name"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7256
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7257
    |jClassName className|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7258
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7259
    jClassName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7260
    className := Java as_ST_String:jClassName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7261
    (JavaDescriptor baseTypesByTypeName keys includes: className)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7262
        ifFalse:[self throwClassNotFoundException:className].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7263
    ^self reflection javaClassObjectForClassNamed: className
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7265
    "Created: / 04-01-1998 / 00:46:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7266
    "Modified: / 28-01-2011 / 15:30:45 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7267
    "Modified: / 03-02-2011 / 21:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7268
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7269
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7270
_java_lang_Class_getProtectionDomain0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7271
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7272
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7273
1649
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7274
    ^(self reflection classForJavaClassObject: nativeContext receiver) javaMirror getProtectionDomain
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7275
0af82006c0b2 - some more support for calling Smalltalk from Groovy. Crashes VM now :-)
vranyj1
parents: 1648
diff changeset
  7276
    "Modified: / 22-08-2012 / 12:55:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7277
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7278
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7279
_java_lang_Class_getRawAnnotations: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7281
    <javanative: 'java/lang/Class' name: 'getRawAnnotations'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7282
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7283
    |class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7285
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7286
    class isJavaArrayClass ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7287
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7288
    ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7289
    class isJavaPrimitiveType ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7290
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7291
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7292
    class isJavaClass ifFalse:[
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7293
        ^nil.
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7294
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7295
    ^ class runtimeVisibleAnnotationsAsBytesOrNil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7296
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7297
    "Created: / 21-12-2010 / 19:35:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7298
    "Modified: / 28-01-2011 / 15:19:20 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7299
    "Modified: / 31-07-2012 / 00:46:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7300
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7301
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7302
_java_lang_Class_getSuperclass: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7303
    <javanative: 'java/lang/Class' name: 'getSuperclass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7304
    "return a classes superclass"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7305
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7306
    | jClass  cls  superCls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7307
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7308
    jClass := nativeContext receiver.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7309
    cls := self reflection classForJavaClassObject: jClass.
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7310
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7311
    cls isJavaPrimitiveType ifTrue: [ ^ nil ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7312
    cls isJavaArrayClass ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7313
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7314
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7315
    cls == Object ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7316
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7317
    ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7318
    cls isInterface ifTrue: [ ^ nil ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7319
    superCls := cls superclass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7320
    superCls == JavaObject ifTrue: [ ^ nil. ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7321
    superCls ==     Object ifTrue: [ ^ nil ]. "/for Java
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7322
    ^ self javaClassObjectForClass: superCls
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7323
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7324
    "Created: / 12-01-1998 / 12:38:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7325
    "Modified: / 04-02-1998 / 14:51:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7326
    "Modified: / 28-01-2011 / 14:12:47 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7327
    "Modified: / 31-07-2012 / 00:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7328
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7329
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7330
_java_lang_Class_isArray: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7331
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7332
    <javanative: 'java/lang/Class' name: 'isArray'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7333
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7334
        ^ (self reflection classForJavaClassObject:nativeContext receiver) isJavaArrayClass
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7335
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7336
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7337
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7338
    "Created: / 12-11-1998 / 18:54:24 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7339
    "Modified: / 20-12-2010 / 23:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7340
    "Modified: / 28-01-2011 / 15:19:24 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7341
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7342
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7343
_java_lang_Class_isAssignableFrom: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7345
    <javanative: 'java/lang/Class' name: 'isAssignableFrom'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7346
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7347
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7348
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7349
     * Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7350
     * {@code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7351
     * superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7352
     * {@code Class} parameter. It returns {@code true} if so;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7353
     * otherwise it returns {@code false}. If this {@code Class}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7354
     * object represents a primitive type, this method returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7355
     * {@code true} if the specified {@code Class} parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7356
     * exactly this {@code Class} object; otherwise it returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7357
     * {@code false}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7358
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7359
     * <p> Specifically, this method tests whether the type represented by the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7360
     * specified {@code Class} parameter can be converted to the type
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7361
     * represented by this {@code Class} object via an identity conversion
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7362
     * or via a widening reference conversion. See <em>The Java Language
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7363
     * Specification</em>, sections 5.1.1 and 5.1.4 , for details.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7364
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7365
     * @param cls the {@code Class} object to be checked
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7366
     * @return the {@code boolean} value indicating whether objects of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7367
     * type {@code cls} can be assigned to objects of this class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7368
     * @exception NullPointerException if the specified Class parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7369
     *            null.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7370
     * @since JDK1.1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7371
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7372
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7373
    | clsObj me other |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7374
    clsObj := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7375
    clsObj ifNil:[^self throwNullPointerException].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7376
    me := self reflection classForJavaClassObject: nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7377
    other := self reflection classForJavaClassObject: clsObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7379
    "/    Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7380
    "/    @code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7381
    "/    superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7382
    "/    {@code Class} parameter.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7383
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7384
    ^(other includesBehavior: me)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7385
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7386
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7387
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7388
    "Created: / 12-11-1998 / 18:54:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7389
    "Modified: / 05-02-2011 / 23:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7390
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7391
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7392
_java_lang_Class_isInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7393
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7394
    <javanative: 'java/lang/Class' name: 'isInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7395
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7396
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7397
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7398
     * Determines if the specified {@code Object} is assignment-compatible
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7399
     * with the object represented by this {@code Class}.  This method is
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7400
     * the dynamic equivalent of the Java language {@code instanceof}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7401
     * operator. The method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7402
     * {@code Object} argument is non-null and can be cast to the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7403
     * reference type represented by this {@code Class} object without
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7404
     * raising a {@code ClassCastException.} It returns {@code false}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7405
     * otherwise.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7406
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7407
     * <p> Specifically, if this {@code Class} object represents a
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7408
     * declared class, this method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7409
     * {@code Object} argument is an instance of the represented class (or
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7410
     * of any of its subclasses); it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7411
     * this {@code Class} object represents an array class, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7412
     * returns {@code true} if the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7413
     * can be converted to an object of the array class by an identity
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7414
     * conversion or by a widening reference conversion; it returns
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7415
     * {@code false} otherwise. If this {@code Class} object
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7416
     * represents an interface, this method returns {@code true} if the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7417
     * class or any superclass of the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7418
     * implements this interface; it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7419
     * this {@code Class} object represents a primitive type, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7420
     * returns {@code false}.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7421
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7422
     * @param   obj the object to check
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7423
     * @return  true if {@code obj} is an instance of this class
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7424
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7425
     * @since JDK1.1
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7426
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7427
    public native boolean isInstance(Object obj);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7428
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7429
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7430
    |jClass cls obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7431
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7432
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7433
    obj isNil ifTrue:[^ 0].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7434
    jClass := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7435
    cls := self reflection classForJavaClassObject:jClass.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7436
    ^self _INSTANCEOF:obj _:cls
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7437
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7438
    "Modified: / 09-02-1998 / 14:56:23 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7439
    "Modified: / 28-01-2011 / 14:12:42 / Marcel Hlopko <hlopik@gmail.com>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7440
    "Modified: / 25-02-2011 / 18:37:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7441
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7442
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7443
_java_lang_Class_isInterface: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7444
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7445
    <javanative: 'java/lang/Class' name: 'isInterface'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7447
        "return true, if this class is an interface"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7448
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7449
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7451
    jClass := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7452
    cls := self reflection classForJavaClassObject:jClass.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7453
    cls isJavaClass ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7454
        ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7455
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7456
    cls isInterface ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7457
        ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7458
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7459
    ^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7460
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7461
    "Created: / 12-01-1998 / 12:37:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7462
    "Modified: / 28-01-2011 / 14:12:35 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7463
    "Modified: / 03-02-2011 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7464
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7466
_java_lang_Class_isPrimitive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7467
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7468
    <javanative: 'java/lang/Class' name: 'isPrimitive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7470
        "return true, if this class is builtin primitive class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7471
     (i.e. byteArray, array, string etc."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7472
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7473
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7475
    jClass := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7476
    cls := self reflection classForJavaClassObject:jClass.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7477
    ^cls isJavaPrimitiveType
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7478
        ifTrue:[1"true"]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7479
        ifFalse:[0"false"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7480
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7481
    "Created: / 09-02-1998 / 14:46:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7482
    "Modified: / 28-01-2011 / 14:12:30 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7483
    "Modified: / 04-02-2011 / 11:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7484
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7485
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7486
_java_lang_Class_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7487
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7488
    <javanative: 'java/lang/Class' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7489
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7490
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7491
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7492
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7493
    "Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7494
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7495
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7496
_java_lang_Class_setProtectionDomain0: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7497
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7498
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7499
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7500
    (self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7501
        protectionDomain: (nativeContext argAt:1)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7502
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7503
    "Created: / 10-08-2011 / 15:20:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7504
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7505
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7506
_java_lang_Compiler_disable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7507
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7508
    <javanative: 'java/lang/Compiler' name: 'disable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7509
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7510
    "Modified: / 09-02-2012 / 22:56:44 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7511
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7512
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7513
_java_lang_Compiler_enable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7514
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7515
    <javanative: 'java/lang/Compiler' name: 'enable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7516
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7517
    "Modified: / 09-02-2012 / 22:57:15 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7518
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7519
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7520
_java_lang_Compiler_registerNatives: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7521
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7522
    <javanative: 'java/lang/Compiler' name: 'registerNatives()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7523
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7524
    "Modified: / 09-02-2012 / 22:56:37 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7525
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7526
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7527
_java_lang_Double_doubleToRawLongBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7528
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7529
    <javanative: 'java/lang/Double' name: 'doubleToRawLongBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7531
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7532
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7533
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7534
     * according to the IEEE 754 floating-point 'double
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7535
     * format' bit layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7536
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7537
     * <p>Bit 63 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7538
     * {@code 0x8000000000000000L}) represents the sign of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7539
     * floating-point number. Bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7540
     * 62-52 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7541
     * {@code 0x7ff0000000000000L}) represent the exponent. Bits 51-0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7542
     * (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7543
     * {@code 0x000fffffffffffffL}) represent the significand
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7544
     * (sometimes called the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7545
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7546
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7547
     * {@code 0x7ff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7548
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7549
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7550
     * {@code 0xfff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7551
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7552
     * <p>If the argument is NaN, the result is the {@code long}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7553
     * integer representing the actual NaN value.  Unlike the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7554
     * {@code doubleToLongBits} method,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7555
     * {@code doubleToRawLongBits} does not collapse all the bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7556
     * patterns encoding a NaN to a single 'canonical' NaN
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7557
     * value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7558
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7559
     * <p>In all cases, the result is a {@code long} integer that,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7560
     * when given to the {@link #longBitsToDouble(long)} method, will
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7561
     * produce a floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7562
     * {@code doubleToRawLongBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7563
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7564
     * @param   value   a {@code double} precision floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7565
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7566
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7567
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7568
    "
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7569
    | f |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7570
    f := aJavaContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7571
    f class == Float ifFalse:[ ^self throwIllegalArgumentException: 'Not a float'].
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7572
%{
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7573
    __int64__ *i = &(__floatVal(f));
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7574
    RETURN (__MKINT64( i ));
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7575
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7576
    self primitiveFailed.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7577
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7578
    "Created: / 10-11-2010 / 14:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7579
    "Modified: / 15-12-2012 / 14:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7580
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7581
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7582
_java_lang_Double_longBitsToDouble: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7583
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7584
    <javanative: 'java/lang/Double' name: 'longBitsToDouble'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7585
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7586
    | i f|
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7587
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7588
    i := nativeContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7589
    f := Float new.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7590
%{
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7591
    __floatVal(f) = (double)(__longIntVal(i));
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7592
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7593
    ^f
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7594
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7596
_java_lang_Float_floatToRawIntBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7598
    <javanative: 'java/lang/Float' name: 'floatToRawIntBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7599
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7600
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7601
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7602
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7603
     * according to the IEEE 754 floating-point 'single format' bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7604
     * layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7605
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7606
     * <p>Bit 31 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7607
     * {@code 0x80000000}) represents the sign of the floating-point
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7608
     * number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7609
     * Bits 30-23 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7610
     * {@code 0x7f800000}) represent the exponent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7611
     * Bits 22-0 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7612
     * {@code 0x007fffff}) represent the significand (sometimes called
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7613
     * the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7614
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7615
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7616
     * {@code 0x7f800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7617
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7618
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7619
     * {@code 0xff800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7620
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7621
     * <p>If the argument is NaN, the result is the integer representing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7622
     * the actual NaN value.  Unlike the {@code floatToIntBits}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7623
     * method, {@code floatToRawIntBits} does not collapse all the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7624
     * bit patterns encoding a NaN to a single 'canonical'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7625
     * NaN value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7626
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7627
     * <p>In all cases, the result is an integer that, when given to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7628
     * {@link #intBitsToFloat(int)} method, will produce a
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7629
     * floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7630
     * {@code floatToRawIntBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7631
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7632
     * @param   value   a floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7633
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7634
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7635
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7636
    "
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7637
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7638
    f := aJavaContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7639
    f class == ShortFloat ifFalse:[ self throwIllegalArgumentException: 'Not a float'].
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7640
%{
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7641
        int i;
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7642
        i = (int)(__shortFloatVal(f));
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7643
        RETURN (__MKINT(i));
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7644
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7645
    self primitiveFailed.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7647
    "Created: / 09-11-2010 / 20:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1876
482ad5ebe5da Merged some fixes from jv's repo
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1867
diff changeset
  7648
    "Modified: / 07-08-2011 / 21:45:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7649
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7650
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7651
_java_lang_Float_intBitsToFloat: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7652
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7653
    <javanative: 'java/lang/Float' name: 'intBitsToFloat(I)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7654
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7655
    | i f|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7656
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7657
    i := nativeContext argAt:1.
1867
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7658
    f := ShortFloat new.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7659
%{
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7660
    __shortFloatVal(f) = (float)(__intVal(i));
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7661
%}.
cd4ec4fbe798 Fixed double/floatToRawIntBits and back
vranyj1
parents: 1865
diff changeset
  7662
    ^f
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7663
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7664
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7665
_java_lang_Object_clone: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7666
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7667
    <javanative: 'java/lang/Object' name: 'clone'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7669
        "clone an object"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7670
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7671
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7673
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7674
    rslt := o shallowCopy.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7675
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7676
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7677
    "Created: / 4.1.1998 / 19:39:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7678
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7679
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7680
_java_lang_Object_getClass: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7681
    <javanative: 'java/lang/Object' name: 'getClass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7682
    "return an objects class"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7683
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7684
    | o  cls  jClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7685
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7686
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7687
    cls := o class.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7688
    jClass := self javaClassObjectForClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7689
    ^ jClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7691
    "Created: / 6.1.1998 / 18:28:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7692
    "Modified: / 23.1.1998 / 17:48:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7693
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7694
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7695
_java_lang_Object_hashCode: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7697
    <javanative: 'java/lang/Object' name: 'hashCode'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7698
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7699
        "identityHash"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7700
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7701
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7702
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7703
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7704
    rslt := o identityHash.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7705
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7706
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7707
    "Created: / 4.1.1998 / 19:40:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7708
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7709
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7710
_java_lang_Object_notify: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7711
    <javanative: 'java/lang/Object' name: 'notify'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7712
    "wakeup"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7713
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7714
    self notify: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7715
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7716
    "Created: / 06-01-1998 / 21:09:26 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7717
    "Modified: / 22-11-2011 / 13:24:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7718
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7719
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7720
_java_lang_Object_notifyAll: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7721
    <javanative: 'java/lang/Object' name: 'notifyAll'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7722
    self notifyAll: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7723
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7724
    "Created: / 03-01-1998 / 03:06:56 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7725
    "Modified: / 22-11-2011 / 13:27:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7726
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7727
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7728
_java_lang_Object_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7730
    <javanative: 'java/lang/Object' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7731
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7732
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7733
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7734
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7735
    "Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7736
    "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7737
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7738
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7739
_java_lang_Object_wait: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7740
    <javanative: 'java/lang/Object' name: 'wait'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7741
    | tmo  handle |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7742
    handle := nativeContext receiver.
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7743
    tmo := nativeContext argAt: 1.
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7744
    tmo < 0 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7745
        self throwIllegalArgumentException: '1'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7746
    ].
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7747
    self
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7748
        waitOn: handle forTimeout: tmo
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7749
        state: #javaWait.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7750
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7751
    "Modified: / 30-12-1998 / 19:20:43 / cg"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7752
    "Modified: / 22-11-2011 / 13:17:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1708
d503f527c66e - JavaMethod
vranyj1
parents: 1706
diff changeset
  7753
    "Modified: / 19-09-2012 / 16:19:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7754
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7755
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7756
_java_lang_Package_getSystemPackage0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7757
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7758
    <javanative: 'java/lang/Package' name: 'getSystemPackage0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7759
909
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7760
    "Based on code on OpenJDK, it is ok to return nil here:"
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7761
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7762
    | syspkg syspkg_s |
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7763
    syspkg := nativeContext argAt: 1.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7764
    syspkg isNil ifTrue:[ ^ nil ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7765
    syspkg_s := Java as_ST_String: syspkg.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7766
    ^(ClassRegistry systemPackage: syspkg_s) notNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7767
        syspkg
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7768
    ] ifFalse:[
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7769
        nil
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7770
    ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7771
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7772
    "Modified: / 16-08-2012 / 17:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7773
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7774
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7775
_java_lang_ProcessEnvironment_environ: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7776
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7777
    <javanative: 'java/lang/ProcessEnvironment' name: 'environ'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7778
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7779
    | env jenv i|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7780
    env := OperatingSystem getEnvironment.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7781
    jenv :=  ByteArray javaArrayClass new: env size * 2.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7782
    i := 1.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7783
    env keysAndValuesDo:
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7784
        [:name :value|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  7785
        jenv
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7786
            at: i   put: name  asByteArray;
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7787
            at: i+1 put: value asByteArray.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7788
        i := i + 2].
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7789
    ^jenv
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7790
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7791
    "Modified: / 25-06-2011 / 08:57:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7792
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7793
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7794
_java_lang_ProcessEnvironment_environmentBlock: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7795
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7796
    <javanative: 'java/lang/ProcessEnvironment' name: 'environmentBlock()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7797
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7798
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7799
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7800
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7801
_java_lang_Runtime_availableProcessors: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7802
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7803
    <javanative: 'java/lang/Runtime' name: 'availableProcessors()I'>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7804
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7805
    /**
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7806
     * Returns the number of processors available to the Java virtual machine.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7807
     *
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7808
     * <p> This value may change during a particular invocation of the virtual
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7809
     * machine.  Applications that are sensitive to the number of available
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7810
     * processors should therefore occasionally poll this property and adjust
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7811
     * their resource usage appropriately. </p>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7812
     *
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7813
     * @return  the maximum number of processors available to the virtual
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7814
     *          machine; never smaller than one
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7815
     * @since 1.4
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7816
     */
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7817
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7818
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7819
    ^ 1 "/ Since Smalltalk/X is single-thread application
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7820
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7821
    "Modified: / 03-09-2012 / 18:53:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7822
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
  7823
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7824
_java_lang_Runtime_freeMemory: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7825
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7826
    <javanative: 'java/lang/Runtime' name: 'freeMemory()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7827
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7828
        "free memory - Returns the number of free bytes"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7829
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7830
    ^ ObjectMemory freeListSpace + ObjectMemory freeSpace
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7831
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7832
    "Created: / 12.1.1998 / 12:59:53 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7833
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7834
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7835
_java_lang_Runtime_gc: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7836
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7837
    <javanative: 'java/lang/Runtime' name: 'gc'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7838
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7839
        "Runs the garbage collector.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7840
     Ignored, since the ST-gc runs all the time."
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7841
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7842
    ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7843
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7844
    "Modified: / 12.1.1998 / 12:58:32 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7845
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7846
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7847
_java_lang_Runtime_runFinalization0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7848
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7849
    <javanative: 'java/lang/Runtime' name: 'runFinalization0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7850
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7851
    Smalltalk garbageCollect
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7852
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7853
    "Modified: / 08-08-2011 / 17:48:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7854
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7855
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7856
_java_lang_SecurityManager_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7857
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7858
    <javanative: 'java/lang/SecurityManager' name: 'getClassContext'>
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7859
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7860
    /**
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7861
     * Returns the current execution stack as an array of classes.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7862
     * <p>
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7863
     * The length of the array is the number of methods on the execution
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7864
     * stack. The element at index <code>0</code> is the class of the
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7865
     * currently executing method, the element at index <code>1</code> is
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7866
     * the class of that method's caller, and so on.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7867
     *
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7868
     * @return  the execution stack.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7869
     */
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7870
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7871
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7872
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7873
    | classes ctx jclasses |
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7874
    classes := OrderedCollection new.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7875
    ctx := thisContext.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7876
    [ ctx notNil ] whileTrue: [
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7877
        ctx isJavaContext ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7878
            classes add: ctx method javaClass.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7879
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7880
        ctx := ctx sender.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7881
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7882
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7883
    jclasses := (self classForName:'java.lang.Class') javaArrayClass new: classes size.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7884
    1 to: classes size do:[:i|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7885
        jclasses at: i put: (self reflection javaClassObjectForClass: (classes at: i)).
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7886
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7887
    ^jclasses
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7888
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7889
    "Created: / 12-11-1998 / 18:56:06 / cg"
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7890
    "Modified: / 15-11-2011 / 00:27:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7891
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7892
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7893
_java_lang_Shutdown_halt0: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7894
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7895
    <javanative: 'java/lang/Shutdown' name: 'halt0'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7896
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7897
    AbortOperationRequest raise
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7898
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
  7899
    "Modified: / 06-07-2012 / 13:13:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7900
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7901
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7902
_java_lang_StrictMath_cbrt: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7903
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7904
    <javanative: 'java/lang/StrictMath' name: 'cbrt'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7905
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7906
    ^ JavaMathSupport cbrt: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7907
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7908
    "Modified: / 07-09-2011 / 17:34:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7909
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7910
1639
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7911
_java_lang_StrictMath_ceil: nativeContext
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7912
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7913
    <javanative: 'java/lang/StrictMath' name: 'ceil(D)D'>
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7914
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7915
    ^ (nativeContext argAt:1) ceiling
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7916
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7917
    "Modified: / 21-08-2012 / 18:01:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7918
!
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7919
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7920
_java_lang_StrictMath_cos: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7921
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7922
    <javanative: 'java/lang/StrictMath' name: 'cos'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7923
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7924
    ^ JavaMathSupport cos: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7925
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7926
    "Modified: / 07-09-2011 / 17:34:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7927
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7928
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7929
_java_lang_StrictMath_cosh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7930
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7931
    <javanative: 'java/lang/StrictMath' name: 'cosh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7932
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7933
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7934
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7935
     * Returns the hyperbolic cosine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7936
     * The hyperbolic cosine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7937
     * (<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7938
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7939
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7940
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7941
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7942
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7943
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7944
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7945
     * <li>If the argument is infinite, then the result is positive
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7946
     * infinity.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7947
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7948
     * <li>If the argument is zero, then the result is {@code 1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7949
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7950
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7951
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7952
     * @param   x The number whose hyperbolic cosine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7953
     * @return  The hyperbolic cosine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7954
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7955
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7956
    public static native double cosh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7957
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7958
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7959
    ^JavaMathSupport cosh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7960
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7961
    "Modified: / 06-09-2011 / 19:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7962
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7963
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7964
_java_lang_StrictMath_expm1: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7965
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7966
    <javanative: 'java/lang/StrictMath' name: 'expm1'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7967
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7968
    ^ JavaMathSupport expm1: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7969
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7970
    "Modified: / 07-09-2011 / 17:34:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7971
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7972
895
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7973
_java_lang_StrictMath_floor: nativeContext
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7974
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7975
    <javanative: 'java/lang/StrictMath' name: 'floor'>
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7976
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7977
   ^ JavaMathSupport floor: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7978
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7979
    "Modified: / 07-09-2011 / 17:33:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7980
!
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7981
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7982
_java_lang_StrictMath_pow: nativeContext
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7983
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7984
    <javanative: 'java/lang/StrictMath' name: 'pow(DD)D'>
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7985
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7986
    ^JavaMathSupport pow: (nativeContext argAt:1) to: (nativeContext argAt:3)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7987
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7988
    "Modified: / 07-09-2011 / 17:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7989
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7990
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7991
_java_lang_StrictMath_sin: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7992
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7993
    <javanative: 'java/lang/StrictMath' name: 'cos'>
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7994
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7995
    ^ JavaMathSupport sin: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7996
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7997
    "Modified: / 07-09-2011 / 17:32:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7998
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7999
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8000
_java_lang_StrictMath_sinh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8001
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8002
    <javanative: 'java/lang/StrictMath' name: 'sinh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8003
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8004
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8005
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8006
     * Returns the hyperbolic sine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8007
     * The hyperbolic sine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8008
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8009
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8010
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8011
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8012
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8013
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8014
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8015
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8016
     * <li>If the argument is infinite, then the result is an infinity
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8017
     * with the same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8018
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8019
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8020
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8021
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8022
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8023
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8024
     * @param   x The number whose hyperbolic sine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8025
     * @return  The hyperbolic sine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8026
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8027
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8028
    public static native double sinh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8029
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8030
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8031
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8032
    ^ JavaMathSupport sinh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8033
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8034
    "Modified: / 06-09-2011 / 19:36:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8035
    "Modified (format): / 07-09-2011 / 17:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8036
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8037
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8038
_java_lang_StrictMath_sqrt: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8039
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8040
    <javanative: 'java/lang/StrictMath' name: 'sqrt(D)D'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8041
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8042
    ^(nativeContext argAt:1) sqrt
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8043
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8044
    "Modified: / 17-07-2012 / 20:53:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8045
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  8046
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8047
_java_lang_StrictMath_tan: nativeContext
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8048
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8049
    <javanative: 'java/lang/StrictMath' name: 'tan(D)D'>
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8050
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8051
    ^ UnimplementedNativeMethodSignal raise
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8052
!
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  8053
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8054
_java_lang_StrictMath_tanh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8055
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8056
    <javanative: 'java/lang/StrictMath' name: 'tanh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8057
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8058
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8059
     * Returns the hyperbolic tangent of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8060
     * The hyperbolic tangent of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8061
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/(<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>),
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8062
     * in other words, {@linkplain Math#sinh
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8063
     * sinh(<i>x</i>)}/{@linkplain Math#cosh cosh(<i>x</i>)}.  Note
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8064
     * that the absolute value of the exact tanh is always less than
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8065
     * 1.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8066
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8067
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8068
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8069
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8070
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8071
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8072
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8073
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8074
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8075
     * <li>If the argument is positive infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8076
     * {@code +1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8077
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8078
     * <li>If the argument is negative infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8079
     * {@code -1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8080
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8081
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8082
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8083
     * @param   x The number whose hyperbolic tangent is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8084
     * @return  The hyperbolic tangent of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8085
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8086
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8087
    public static native double tanh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8088
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  8089
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8090
    ^ JavaMathSupport tanh: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8091
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  8092
    "Modified: / 07-09-2011 / 17:32:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8093
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8094
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8095
_java_lang_String_intern: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8096
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8097
    <javanative: 'java/lang/String' name: 'intern'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8099
        |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8101
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8102
    ^ Java intern:jString
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8103
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8104
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8105
_java_lang_System_arraycopy: nativeContext
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8106
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8107
    <javanative: 'java/lang/System' name: 'arraycopy'>
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8108
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8109
    |srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx|
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8110
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8111
    srcArray := nativeContext argAt:1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8112
    srcArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8113
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8114
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8115
    srcArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8116
        ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8117
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8118
    srcIdx := nativeContext argAt:2.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8119
    dstArray := nativeContext argAt:3.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8120
    dstArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8121
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8122
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8123
    dstArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8124
        ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8125
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8126
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8127
    srcArrayCC := srcArray class javaComponentClass.
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8128
    dstArrayCC := dstArray class javaComponentClass.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8129
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8130
    srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8131
        ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8132
            [srcArrayCC isJavaPrimitiveType
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8133
                ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8134
                    [srcArrayCC ~~ dstArrayCC ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8135
                        [^ self throwArrayStoreException:dstArray]].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8136
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8137
        ifFalse:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8138
            [^ self throwArrayStoreException:dstArray].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8139
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8140
    dstIdx := nativeContext argAt:4.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8141
    count := nativeContext argAt:5.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8142
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8143
    count < 0 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8144
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8145
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8146
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8147
    ((srcIdx < 0) or:[srcIdx + count > srcArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8148
        srcArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8149
            srcArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8150
                ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8151
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8152
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8153
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8154
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8155
    ((dstIdx < 0) or:[dstIdx + count > dstArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8156
        dstArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8157
            dstArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8158
                ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8159
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8160
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8161
        ^ self throwArrayIndexOutOfBoundsException:(dstIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8162
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8163
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8164
    dstEndIdx := dstIdx + count.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8165
    dstIdx := dstIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8166
    srcIdx := srcIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8167
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8168
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8169
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8170
    (srcArray class isBytes and:[dstArray class isBytes]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8171
        dstArray replaceBytesFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8172
    ] ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8173
        dstArrayCC isJavaPrimitiveType ifFalse:[
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8174
            "Copy from array iff src=dst to avoid overwriting a data when copying"
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8175
            srcArray == dstArray ifTrue:[srcArray := srcArray copy].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8176
            1 to: count do:[:i|
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8177
                | obj |
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8178
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8179
                obj := srcArray at:srcIdx + i - 1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8180
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8181
                (obj notNil and:[(self canCast: obj class to: dstArrayCC) not]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8182
                    ^ self throwArrayStoreException:dstArray
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8183
                ].
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8184
                dstArray at: dstIdx + i - 1 put: (srcArray at:srcIdx + i - 1)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8185
            ]
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8186
        ] ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8187
            dstArray replaceFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8188
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8189
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8190
    ^ nil.
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8191
992
6d3e3d937fda Class loader mess cleanup, more will come later...
vranyj1
parents: 988
diff changeset
  8192
    "Modified: / 08-09-2011 / 15:25:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8193
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8194
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8195
_java_lang_System_currentTimeMillis: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8196
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8197
    <javanative: 'java/lang/System' name: 'currentTimeMillis'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8198
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8199
    "return the milliseconds since 1.jan.1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8200
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8201
    "Should be OK, see Timestamp>>getMilliseconds & Timestamp>>getSeconds & Timestamp>>utcSecondsSince1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8202
    ^ Timestamp now getMilliseconds
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8204
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8205
     JavaVM _System_currentTimeMillis:nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8206
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8207
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8208
    "Modified: / 23-12-1998 / 21:54:50 / cg"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8209
    "Modified: / 19-07-2012 / 11:44:56 / jv"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8210
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8211
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8212
_java_lang_System_identityHashCode: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8213
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8214
    <javanative: 'java/lang/System' name: 'identityHashCode'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8215
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8216
        |obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8217
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8218
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8219
    ^ obj identityHash
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8220
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8221
    "Modified: / 12.11.1998 / 18:52:07 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8222
    "Created: / 12.11.1998 / 18:54:00 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8223
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8224
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8225
_java_lang_System_initProperties: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8227
    <javanative: 'java/lang/System' name: 'initProperties'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8229
        |props stProps|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8230
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8231
    props := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8232
    stProps := self systemProperties.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8233
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8234
    "/ recursively invoke myself on the Java HashTable.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8235
    "/ calling 'put' to stuff in the values ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8237
    stProps keysAndValuesDo:[:key :value |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8238
	|keyObj valueObj|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8240
	keyObj := Java as_String:key.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8241
	valueObj := Java as_String:value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8242
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8243
	props
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8244
	    perform:#'put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;'
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8245
	    with:keyObj
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8246
	    with:valueObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8247
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8248
    ^ props
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8250
    "Created: / 3.1.1998 / 14:25:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8251
    "Modified: / 4.1.1998 / 14:23:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8252
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8254
_java_lang_System_mapLibraryName: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8256
    <javanative: 'java/lang/System' name: 'mapLibraryName'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8257
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8258
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8259
    | name |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8260
    name := Java as_ST_String: (aJavaContext argAt: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8261
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8262
    OperatingSystem isUNIXlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8263
        ^Java as_String: ('lib' , name , '.so').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8264
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8266
    OperatingSystem isMSWINDOWSlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8267
        ^Java as_String: ( name , '.dll').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8268
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8270
    self error:'Unknown/Unsupported platform'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8271
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8272
    "Created: / 09-12-2010 / 18:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8273
    "Modified: / 01-04-2011 / 18:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8274
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8275
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8276
_java_lang_System_nanoTime: nativeContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8277
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8278
    <javanative: 'java/lang/System' name: 'nanoTime'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8279
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8280
    ^ OperatingSystem getMicrosecondTime * 1000
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8281
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8282
    "Modified: / 07-08-2011 / 21:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8283
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8284
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8285
_java_lang_System_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8286
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8287
    <javanative: 'java/lang/System' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8288
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8289
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8290
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8291
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8292
    "Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8293
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8295
_java_lang_System_setErr0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8296
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8297
    <javanative: 'java/lang/System' name: 'setErr0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8299
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8301
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8303
    self setOpenFile:(self javaConsoleStream ? Stderr) at:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8304
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8305
    nativeContext receiver instVarNamed:'err' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8306
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8307
    "Created: / 18.3.1997 / 15:02:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8308
    "Modified: / 4.1.1998 / 16:21:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8309
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8310
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8311
_java_lang_System_setIn0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8313
    <javanative: 'java/lang/System' name: 'setIn0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8315
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8317
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8318
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8319
    self setOpenFile:Stdin at:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8321
    nativeContext receiver instVarNamed:'in' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8323
    "Created: / 4.1.1998 / 16:16:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8324
    "Modified: / 4.1.1998 / 16:20:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8325
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8327
_java_lang_System_setOut0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8329
    <javanative: 'java/lang/System' name: 'setOut0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8330
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8331
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8332
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8333
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8334
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8335
    self setOpenFile:(self javaConsoleStream ? Stdout) at:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8337
    nativeContext receiver instVarNamed:'out' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8339
    "Created: / 4.1.1998 / 16:18:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8340
    "Modified: / 4.1.1998 / 16:20:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8341
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8342
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8343
_java_lang_Thread_currentThread: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8344
    <javanative: 'java/lang/Thread' name: 'currentThread'>
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8345
    | t  p |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8346
    p := Processor activeProcess.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8347
    t := self javaThreadForSTProcess: p.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8348
    nativeContext sender receiver class name
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8349
        = 'java/util/concurrent/locks/ReentrantLock$NonfairSync'
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8350
            ifTrue: [
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8351
                | owner |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8352
                owner := (nativeContext sender receiver
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8353
                            perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8354
                (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8355
            ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8356
    t notNil ifTrue: [ ^ t ].
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8357
    t := self newThread: p name.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8358
    t instVarNamed: 'tid' put: p id.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8359
    Java addThread: t for: p.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8360
    ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8361
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8362
    "Modified: / 04-12-2011 / 20:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8363
    "Modified: / 09-12-2011 / 12:52:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8364
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8365
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8366
_java_lang_Thread_holdsLock: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8367
    <javanative: 'java/lang/Thread' name: 'holdsLock'>
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8368
    | obj  mon  thisProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8369
    obj := aJavaContext argAt: 1.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8370
    obj isNil ifTrue: [self throwNullPointerException:'null given to _java_lang_Thread_holdsLock'].
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  8371
    mon := obj getJavaMonitor.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8372
    thisProcess := Processor activeProcess.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8373
    (mon isOwnedBy: thisProcess) ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8374
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8375
    "Created: / 30-04-2011 / 22:06:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8376
    "Modified: / 09-12-2011 / 11:13:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
  8377
    "Modified: / 27-08-2012 / 11:36:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8378
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8379
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8380
_java_lang_Thread_interrupt0: nativeContext
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8381
    <javanative: 'java/lang/Thread' name: 'interrupt0()V'>
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8382
    | jThread  stProcess |
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8383
    jThread := nativeContext receiver.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8384
    stProcess := self stProcessForJavaThread: jThread.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8385
    self assert: stProcess notNil.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8386
    stProcess javaInterrupt.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8387
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8388
    "Modified: / 02-01-1998 / 21:49:06 / cg"
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8389
    "Created: / 10-04-1998 / 15:21:43 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8390
    "Modified: / 30-11-2011 / 13:36:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8391
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8392
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8393
_java_lang_Thread_isAlive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8394
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8395
    <javanative: 'java/lang/Thread' name: 'isAlive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8397
        "is it alive ?"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8398
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8399
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8401
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8402
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8403
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8404
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8405
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8406
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8407
	^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8408
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8409
    stProcess isDead ifTrue:[^ 0 "FALSE"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8410
    ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8412
    "Created: / 5.1.1998 / 02:03:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8413
    "Modified: / 6.2.1998 / 02:15:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8414
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8415
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8416
_java_lang_Thread_isInterrupted: nativeContext
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8417
    <javanative: 'java/lang/Thread' name: 'isInterrupted'>
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8418
    "ask if a thread is interrupted (clear interruptState if arg is true)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8419
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8420
    | jThread  stProcess  clearInterrupt  wasInterrupted |
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8421
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8422
    stProcess := self stProcessForJavaThread: jThread.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8423
    self assert: stProcess notNil.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8424
    clearInterrupt := nativeContext argAt: 1.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8425
    wasInterrupted := stProcess isInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8426
    clearInterrupt ~~ 0 ifTrue: [ stProcess clearInterrupted ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8427
    stProcess isDead ifTrue: [ ^ 0 ].
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8428
    wasInterrupted ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8429
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8430
    "Modified: / 02-01-1998 / 21:49:06 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8431
    "Created: / 07-01-1998 / 18:50:26 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8432
    "Modified: / 05-08-2011 / 22:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8433
    "Modified: / 30-11-2011 / 12:22:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8434
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8435
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8436
_java_lang_Thread_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8438
    <javanative: 'java/lang/Thread' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8439
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8440
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8441
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8443
    "Created: / 20-10-2010 / 11:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8444
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8445
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8446
_java_lang_Thread_resume0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8447
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8448
    <javanative: 'java/lang/Thread' name: 'resume0()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8449
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8450
        "yield"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8451
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8452
    |jThread stProcess|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8453
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8454
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8455
    stProcess := JavaVM stProcessForJavaThread:jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8456
    stProcess isNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8457
	ThreadTrace == true ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8458
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8459
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8460
	^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8461
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8462
    stProcess resume
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8463
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8464
    "Created: / 8.1.1998 / 01:06:27 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8465
    "Modified: / 6.2.1998 / 02:15:08 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8466
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8467
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8468
_java_lang_Thread_setPriority0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8470
    <javanative: 'java/lang/Thread' name: 'setPriority0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8471
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8472
   |t p prio|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8473
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8474
    t := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8475
    p := JavaVM stProcessForJavaThread:t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8476
    prio := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8477
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8478
    p isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8479
        ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8480
            'JAVA [info]: no process yet (in setPriority)' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8481
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8482
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8483
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8484
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8485
    "Modified: / 01-05-2011 / 13:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8486
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8487
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8488
_java_lang_Thread_sleep: nativeContext
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8489
    <javanative: 'java/lang/Thread' name: 'sleep'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8490
    "sleep for some milliseconds "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8491
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8492
    | millis |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8493
    millis := nativeContext argAt: 1.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8494
    millis < 0 ifTrue: [
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8495
        self throwIllegalArgumentException: ('negative timeout: %1 in Thread.sleep' bindWith: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8496
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8497
    Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8498
        log: ('%1 going to sleep for %2'
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8499
                bindWith: Processor activeProcess printString
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8500
                with: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8501
        severity: #debug
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8502
        facility: #JVM.
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8503
    self sleepForTimeout: millis state: #sleep.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8504
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8505
    "Modified: / 08-01-1999 / 16:42:52 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8506
    "Modified: / 30-11-2011 / 13:58:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8507
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8508
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8509
_java_lang_Thread_start0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8511
    <javanative: 'java/lang/Thread' name: 'start0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8512
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8513
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8514
    ^self threadStart: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8515
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8516
    "Modified: / 24-12-1999 / 03:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8517
    "Created: / 22-11-2010 / 17:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8518
    "Modified: / 14-12-2010 / 21:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8519
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8520
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8521
_java_lang_Thread_stop0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8522
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8523
    <javanative: 'java/lang/Thread' name: 'stop0(Ljava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8524
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8525
        "terminate a thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8526
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8527
    | jThread  stProcess  death |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8528
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8529
    stProcess := JavaVM stProcessForJavaThread: jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8530
    stProcess isNil ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8531
        ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8532
            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8533
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8534
        ^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8535
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8536
    stProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8537
    stProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8538
    death := nativeContext argAt: 1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8539
    stProcess
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8540
        interruptWith: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8541
            JavaVM javaExceptionSignal
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8542
                handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8543
                    :ex |
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8544
                    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8545
                    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8546
                    Processor activeProcess terminate
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8547
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8548
                do: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8549
                    ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8550
                        ('JAVA: thread exit: ' , jThread displayString) infoPrintNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8551
                    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8552
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8553
                    jThread perform: #'exit()V'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8554
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8555
                    self throwException: death.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8556
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8557
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8558
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8559
    "Created: / 08-01-1998 / 13:11:17 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8560
    "Modified: / 24-12-1999 / 02:32:45 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8561
    "Modified: / 01-12-2011 / 18:26:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8562
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8563
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8564
_java_lang_Thread_yield: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8565
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8566
    <javanative: 'java/lang/Thread' name: 'yield()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8567
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8568
        "yield"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8569
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8570
    |jThread stProcess|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8571
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8572
    Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8573
"/    jThread := nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8574
"/    stProcess := JavaVM stProcessForJavaThread:jThread.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8575
"/    stProcess isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8576
"/        ThreadTrace == true ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8577
"/            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8578
"/        ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8579
"/        ^ nil "void"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8580
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8581
"/    stProcess == Processor activeProcess ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8582
"/        Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8583
"/    ] ifFalse:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8584
"/        self halt.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8585
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8586
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8587
    "Created: / 5.1.1998 / 02:03:51 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8588
    "Modified: / 23.12.1998 / 19:19:17 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8589
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8590
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8591
_java_lang_Throwable_fillInStackTrace: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8592
    <javanative: 'java/lang/Throwable' name: 'fillInStackTrace'>
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8593
    | java_lang_Throwable  exceptionObject  list  con |
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8594
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8595
    java_lang_Throwable := Java classNamed: 'java/lang/Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8596
    exceptionObject := nativeContext receiver.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8597
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8598
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8599
    "/ debugging only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8600
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8601
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8602
    (java_lang_Throwable notNil and:[(exceptionObject isKindOf: java_lang_Throwable) not]) ifTrue: [
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8603
        self error:'Thrown object is not a java.lang.Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8604
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8605
    con := thisContext sender.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8606
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8607
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8608
    "/ we are not interrested in all intermediate Exception frames ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8609
    "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8610
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8611
    FullExceptionTrace ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8612
        "/ first, skip any JavaVM contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8613
        [ con receiver == exceptionObject ] whileFalse: [ con := con sender ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8614
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8615
        "/ then, all exception-init contexts
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8616
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8617
        [ con receiver == exceptionObject ] whileTrue: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8618
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8619
    list := OrderedCollection new.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8620
    [ con notNil ] whileTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8621
        (con isJavaContext) ifTrue: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8622
            "/ add a copy, in case the context continues with some
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8623
            "/ cleanup ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8624
            list add: con shallowCopy
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8625
        ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8626
        con := con sender
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8627
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8628
    exceptionObject instVarNamed: 'backtrace' put: (list asArray).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8629
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8630
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8631
    "Created: / 04-01-1998 / 14:27:40 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8632
    "Modified: / 08-05-1998 / 21:29:53 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8633
    "Modified: / 21-10-2011 / 13:41:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8634
    "Modified: / 28-10-2011 / 22:15:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8635
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8636
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8637
_java_lang_Throwable_getStackTraceDepth: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8638
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8639
    <javanative: 'java/lang/Throwable' name: 'getStackTraceDepth'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8640
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8641
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8642
    ^(nativeContext receiver instVarNamed: #backtrace) size
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8643
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8644
    "Modified: / 01-05-2011 / 20:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8645
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8646
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8647
_java_lang_Throwable_getStackTraceElement: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8648
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8649
    <javanative: 'java/lang/Throwable' name: 'getStackTraceElement'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8650
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8651
    | throwable index ctx stackTraceElement |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8652
    throwable := nativeContext receiver.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8653
    index :=  nativeContext argAt: 1.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8654
    ctx := (throwable instVarNamed:#backtrace) at: index + 1.
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8655
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8656
    stackTraceElement := (self classForName: 'java.lang.StackTraceElement') new.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8657
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8658
    stackTraceElement
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8659
        instVarNamed: #declaringClass
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8660
        put: (Java as_String:(ctx method javaClass javaName));
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8661
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8662
        instVarNamed: #methodName
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8663
        put: (Java as_String:"(ctx method printStringForBrowserWithSelector:ctx method selector inClass: ctx method javaClass) asString"ctx method selector);
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8664
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8665
        instVarNamed: #lineNumber
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8666
        put: ctx lineNumber.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8667
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8668
    ctx method javaClass sourceFile notNil ifTrue:[
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8669
        stackTraceElement
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8670
            instVarNamed: #fileName
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8671
            put: (Java as_String:(ctx method javaClass sourceFile))
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8672
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8673
    ^ stackTraceElement
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8674
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8675
    "Modified: / 02-12-2011 / 23:36:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8676
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8677
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8678
_java_lang_UNIXProcess_forkAndExec: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8679
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8680
    <javanative: 'java/lang/UNIXProcess' name: 'forkAndExec'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8681
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8682
    "^ UnimplementedNativeMethodSignal raise"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8683
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8684
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8685
_java_lang_UNIXProcess_initIDs: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8686
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8687
    <javanative: 'java/lang/UNIXProcess' name: 'initIDs'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8688
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8689
    "Nothing to do"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8690
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8691
    "Modified: / 25-06-2011 / 10:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8692
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8693
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8694
_java_lang_UNIXProcess_waitForProcessExit: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8695
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8696
    <javanative: 'java/lang/UNIXProcess' name: 'waitForProcessExit(I)I'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8697
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8698
    "^ UnimplementedNativeMethodSignal raise"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8699
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8700
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8701
1550
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8702
!JavaVM class methodsFor:'native - java.lang.ref'!
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8703
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8704
_java_lang_ref_Finalizer_invokeFinalizeMethod: nativeContext
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8705
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8706
    <javanative: 'java/lang/ref/Finalizer' name: 'invokeFinalizeMethod(Ljava/lang/Object;)V'>
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8707
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8708
    | o |
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8709
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8710
    o := nativeContext argAt:1.
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8711
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8712
    Logger log: 'Finalizing ' , o printString  severity: #debug facility: 'JVM' .
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8713
    o perform:#'finalize()V'
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8714
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8715
    "Modified: / 24-07-2012 / 11:11:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8716
! !
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8717
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8718
!JavaVM class methodsFor:'native - java.lang.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8719
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8720
_java_lang_reflect_Array_getLength: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8721
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8722
    <javanative: 'java/lang/reflect/Array' name: 'getLength(Ljava/lang/Object;)I'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8723
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8724
    ^(nativeContext argAt: 1) size
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8725
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8726
    "Modified: / 17-08-2011 / 09:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8727
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8728
1151
vranyj1
parents: 1150
diff changeset
  8729
_java_lang_reflect_Array_multiNewArray: nativeContext
vranyj1
parents: 1150
diff changeset
  8730
vranyj1
parents: 1150
diff changeset
  8731
    <javanative: 'java/lang/reflect/Array' name: 'multiNewArray(Ljava/lang/Class;[I)Ljava/lang/Object;'>
vranyj1
parents: 1150
diff changeset
  8732
vranyj1
parents: 1150
diff changeset
  8733
    |componentClass sizes cls array |
vranyj1
parents: 1150
diff changeset
  8734
vranyj1
parents: 1150
diff changeset
  8735
    (nativeContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8736
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8737
        ^nil.
vranyj1
parents: 1150
diff changeset
  8738
    ].
vranyj1
parents: 1150
diff changeset
  8739
    (nativeContext argAt:2) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8740
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8741
        ^nil.
vranyj1
parents: 1150
diff changeset
  8742
    ].
vranyj1
parents: 1150
diff changeset
  8743
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8744
    componentClass := self reflection
1151
vranyj1
parents: 1150
diff changeset
  8745
                classForJavaClassObject:(nativeContext argAt:1).
vranyj1
parents: 1150
diff changeset
  8746
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8747
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8748
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8749
    ].
1151
vranyj1
parents: 1150
diff changeset
  8750
    sizes := nativeContext argAt:2.
vranyj1
parents: 1150
diff changeset
  8751
    sizes class == SignedIntegerArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8752
        self throwIllegalArgumentException:('sizes arguments not instance of int[] (is: %1)' bindWith: sizes class).
vranyj1
parents: 1150
diff changeset
  8753
        ^nil
vranyj1
parents: 1150
diff changeset
  8754
    ].
vranyj1
parents: 1150
diff changeset
  8755
    sizes size == 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8756
        self throwIllegalArgumentException:('sizes argument has no elements').
vranyj1
parents: 1150
diff changeset
  8757
        ^nil
vranyj1
parents: 1150
diff changeset
  8758
    ].
vranyj1
parents: 1150
diff changeset
  8759
    array := nil.
vranyj1
parents: 1150
diff changeset
  8760
    cls := componentClass.
vranyj1
parents: 1150
diff changeset
  8761
    sizes do:[:size|
vranyj1
parents: 1150
diff changeset
  8762
        | newArray |
vranyj1
parents: 1150
diff changeset
  8763
        size > SmallInteger maxVal ifTrue:[
vranyj1
parents: 1150
diff changeset
  8764
            "This is just for Mauve tests"
vranyj1
parents: 1150
diff changeset
  8765
            self throwExceptionClassName:'java.lang.OutOfMemoryError'
vranyj1
parents: 1150
diff changeset
  8766
                             withMessage:'array size too big'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8767
            ^nil.
1151
vranyj1
parents: 1150
diff changeset
  8768
        ].
vranyj1
parents: 1150
diff changeset
  8769
        size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8770
            self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8771
                             withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8772
            ^nil
vranyj1
parents: 1150
diff changeset
  8773
        ].
vranyj1
parents: 1150
diff changeset
  8774
        cls := cls javaArrayClass.
vranyj1
parents: 1150
diff changeset
  8775
        newArray := cls new: size.
vranyj1
parents: 1150
diff changeset
  8776
        1 to: size do:[:i|
vranyj1
parents: 1150
diff changeset
  8777
            newArray at:i put: array copy.
vranyj1
parents: 1150
diff changeset
  8778
        ].
vranyj1
parents: 1150
diff changeset
  8779
        array := newArray.
vranyj1
parents: 1150
diff changeset
  8780
    ].
vranyj1
parents: 1150
diff changeset
  8781
    ^array.
vranyj1
parents: 1150
diff changeset
  8782
vranyj1
parents: 1150
diff changeset
  8783
    "Modified: / 22-11-2011 / 10:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
  8784
!
vranyj1
parents: 1150
diff changeset
  8785
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8786
_java_lang_reflect_Array_newArray:aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8787
    <javanative: 'java/lang/reflect/Array' name: 'newArray'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8788
    |componentClass size|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8789
1151
vranyj1
parents: 1150
diff changeset
  8790
    (aJavaContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8791
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8792
        ^nil.
vranyj1
parents: 1150
diff changeset
  8793
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8794
    componentClass := self reflection
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8795
                classForJavaClassObject:(aJavaContext argAt:1).
1151
vranyj1
parents: 1150
diff changeset
  8796
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8797
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8798
        ^nil
vranyj1
parents: 1150
diff changeset
  8799
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8800
    size := aJavaContext argAt:2.
1151
vranyj1
parents: 1150
diff changeset
  8801
    size < 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8802
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8803
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8804
        ^nil
vranyj1
parents: 1150
diff changeset
  8805
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8806
    ^ componentClass javaArrayClass new:size
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8807
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8808
    "Created: / 17-12-2010 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8809
    "Modified: / 28-01-2011 / 15:18:50 / Marcel Hlopko <hlopik@gmail.com>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
  8810
    "Modified: / 04-06-2011 / 17:06:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
  8811
    "Modified: / 22-11-2011 / 09:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8812
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8813
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8814
_java_lang_reflect_Array_set: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8815
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8816
    <javanative: 'java/lang/reflect/Array' name: 'set'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8817
1151
vranyj1
parents: 1150
diff changeset
  8818
    | array index value |
vranyj1
parents: 1150
diff changeset
  8819
    array :=  nativeContext at:1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8820
    index := (nativeContext at:2) + 1.
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8821
    value :=  nativeContext at:3.
1151
vranyj1
parents: 1150
diff changeset
  8822
vranyj1
parents: 1150
diff changeset
  8823
    array isJavaArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8824
        self throwIllegalArgumentException:'passed object is not an array'.
vranyj1
parents: 1150
diff changeset
  8825
        ^nil.
vranyj1
parents: 1150
diff changeset
  8826
    ].
vranyj1
parents: 1150
diff changeset
  8827
    index < 1 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8828
        self throwIllegalArgumentException:'index is negative'.
vranyj1
parents: 1150
diff changeset
  8829
        ^nil.
vranyj1
parents: 1150
diff changeset
  8830
    ].
vranyj1
parents: 1150
diff changeset
  8831
    index > array size ifTrue:[
vranyj1
parents: 1150
diff changeset
  8832
        self throwArrayIndexOutOfBoundsException: index.
vranyj1
parents: 1150
diff changeset
  8833
        ^nil.
vranyj1
parents: 1150
diff changeset
  8834
    ].
vranyj1
parents: 1150
diff changeset
  8835
    value isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8836
        array at: index put: nil.
vranyj1
parents: 1150
diff changeset
  8837
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8838
    ].
1151
vranyj1
parents: 1150
diff changeset
  8839
    (self canCast: value class to: array class javaComponentClass) ifFalse:[
vranyj1
parents: 1150
diff changeset
  8840
        self throwIllegalArgumentException:'type-incompatible value'.
vranyj1
parents: 1150
diff changeset
  8841
        ^nil.
vranyj1
parents: 1150
diff changeset
  8842
    ].
vranyj1
parents: 1150
diff changeset
  8843
    array at: index put: value.
vranyj1
parents: 1150
diff changeset
  8844
vranyj1
parents: 1150
diff changeset
  8845
    "Modified: / 22-11-2011 / 11:06:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8846
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8847
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8848
_java_lang_reflect_Proxy_defineClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8849
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8850
    <javanative: 'java/lang/reflect/Proxy' name: 'defineClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8851
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8852
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8853
    private static native Class defineClass0(ClassLoader loader, String name,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8854
                                             byte[] b, int off, int len);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8855
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8856
    | loader name b off len  bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8857
    loader := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8858
    name := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8859
    b := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8860
    off := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8861
    len := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8862
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8863
    bs := (off = 0 and: [len = b size])
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8864
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8865
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8866
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8867
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8868
    cls classLoader: loader.
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  8869
    self classRegistry registerClass: cls.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8870
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8871
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8872
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8873
    "Created: / 06-02-2011 / 16:55:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8874
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8875
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8876
!JavaVM class methodsFor:'native - java.net'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8877
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8878
_java_net_DatagramPacket_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8879
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8880
    <javanative: 'java/net/DatagramPacket' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8881
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8882
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8883
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8884
    "Modified: / 13-09-2011 / 22:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8885
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8886
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8887
_java_net_Inet4AddressImpl_getHostByAddr: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8888
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8889
    <javanative: 'java/net/Inet4AddressImpl' name: 'getHostByAddr([B)Ljava/lang/String;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8890
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8891
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8892
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8893
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8894
_java_net_Inet4AddressImpl_getLocalHostName: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8895
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8896
    <javanative: 'java/net/Inet4AddressImpl' name: 'getLocalHostName()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8897
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8898
    ^Java as_String: OperatingSystem getHostName
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8899
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8900
    "Modified: / 13-09-2011 / 22:36:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8901
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8902
1084
vranyj1
parents: 1083
diff changeset
  8903
_java_net_Inet4AddressImpl_lookupAllHostAddr: nativeContext
vranyj1
parents: 1083
diff changeset
  8904
vranyj1
parents: 1083
diff changeset
  8905
    <javanative: 'java/net/Inet4AddressImpl' name: 'lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress;'>
vranyj1
parents: 1083
diff changeset
  8906
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8907
    | hostname sockaddr inet4Address |
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8908
    hostname := Java as_ST_String: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8909
    [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8910
        sockaddr := IPSocketAddress hostName: hostname.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8911
    ] on: HostNameLookupError do: [:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8912
        self throwExceptionClassName: 'java.net.UnknownHostException' withMessage: (ex description , '(' , hostname , ')').
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8913
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8914
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8915
    "Bad, here we have an access to just one inet address,
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8916
     that's fine for now, however"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8917
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8918
    inet4Address := (self classForName:'java.net.Inet4Address') newCleared.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  8919
    inet4Address
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8920
        instVarNamed: #family put: 1; "/IPv4
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8921
        instVarNamed: #address put: (sockaddr address doubleWordAt: 1 MSB: true);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8922
        instVarNamed: #hostName put: (nativeContext argAt:1);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8923
        instVarNamed: #canonicalHostName put: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8924
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8925
    ^(self classForName:'java.net.InetAddress') javaArrayClass with: inet4Address.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8926
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8927
    "Modified: / 08-11-2011 / 10:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8928
!
vranyj1
parents: 1083
diff changeset
  8929
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8930
_java_net_Inet4Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8931
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8932
    <javanative: 'java/net/Inet4Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8933
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8934
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8935
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8936
    "Modified: / 13-09-2011 / 22:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8937
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8938
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8939
_java_net_Inet6Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8940
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8941
    <javanative: 'java/net/Inet6Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8942
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8943
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8944
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8945
    "Modified: / 13-09-2011 / 22:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8946
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8947
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8948
_java_net_InetAddressImplFactory_isIPv6Supported: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8949
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8950
    <javanative: 'java/net/InetAddressImplFactory' name: 'isIPv6Supported'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8951
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8952
    ^ 0 "IPv6 is not supported!!"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8953
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8954
    "Modified: / 13-09-2011 / 19:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8955
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8956
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8957
_java_net_InetAddress_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8958
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8959
    <javanative: 'java/net/InetAddress' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8960
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8961
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8962
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8963
    "Created: / 27-01-1998 / 18:16:40 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8964
    "Modified (comment): / 13-09-2011 / 22:32:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8965
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8966
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8967
_java_net_NetworkInterface_getAll: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8968
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8969
    <javanative: 'java/net/NetworkInterface' name: 'getAll()[Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8970
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8971
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8972
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8973
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8974
_java_net_NetworkInterface_getByName0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8975
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8976
    <javanative: 'java/net/NetworkInterface' name: 'getByName0(Ljava/lang/String;)Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8977
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8978
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8979
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8980
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8981
_java_net_NetworkInterface_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8982
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8983
    <javanative: 'java/net/NetworkInterface' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8984
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8985
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8986
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8987
    "Modified: / 13-09-2011 / 22:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8988
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8989
1084
vranyj1
parents: 1083
diff changeset
  8990
_java_net_PlainDatagramSocketImpl_bind0: nativeContext
vranyj1
parents: 1083
diff changeset
  8991
vranyj1
parents: 1083
diff changeset
  8992
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'bind0(ILjava/net/InetAddress;)V'>
vranyj1
parents: 1083
diff changeset
  8993
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8994
    | port addr sock fd |
1084
vranyj1
parents: 1083
diff changeset
  8995
vranyj1
parents: 1083
diff changeset
  8996
    port := nativeContext argAt: 1.
vranyj1
parents: 1083
diff changeset
  8997
    addr := nativeContext argAt: 2.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8998
    addr isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8999
        self throwSocketException: 'Passed InetAddress object is null'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9000
        ^nil.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9001
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9002
    fd := nativeContext receiver instVarNamed: #fd.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9003
    fd isNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9004
        self throwSocketException: 'Socket closed'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9005
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9006
    ].
1084
vranyj1
parents: 1083
diff changeset
  9007
    sock := self validateFile: nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9008
vranyj1
parents: 1083
diff changeset
  9009
    addr := addr perform: #'getAddress()[B'.
vranyj1
parents: 1083
diff changeset
  9010
    addr = #[0 0 0 0] ifTrue:[
vranyj1
parents: 1083
diff changeset
  9011
        addr := nil
vranyj1
parents: 1083
diff changeset
  9012
    ] ifFalse:[
vranyj1
parents: 1083
diff changeset
  9013
        self throwSocketException: 'Only all-interface bind is supported by underlaing socket implementation, sorry'.
vranyj1
parents: 1083
diff changeset
  9014
        ^nil
vranyj1
parents: 1083
diff changeset
  9015
    ].
vranyj1
parents: 1083
diff changeset
  9016
    [
vranyj1
parents: 1083
diff changeset
  9017
        sock bindTo: port address: addr reuseAddress: true.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9018
        nativeContext receiver instVarNamed: #localPort put: sock port.
1084
vranyj1
parents: 1083
diff changeset
  9019
    ] on: Error do:[:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9020
        self throwSocketException: 'bind0() failed: ', ex description
1084
vranyj1
parents: 1083
diff changeset
  9021
    ]
vranyj1
parents: 1083
diff changeset
  9022
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9023
    "Modified: / 07-11-2011 / 21:45:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  9024
!
vranyj1
parents: 1083
diff changeset
  9025
vranyj1
parents: 1083
diff changeset
  9026
_java_net_PlainDatagramSocketImpl_datagramSocketClose: nativeContext
vranyj1
parents: 1083
diff changeset
  9027
vranyj1
parents: 1083
diff changeset
  9028
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketClose()V'>
vranyj1
parents: 1083
diff changeset
  9029
vranyj1
parents: 1083
diff changeset
  9030
        |jsock sock|
vranyj1
parents: 1083
diff changeset
  9031
vranyj1
parents: 1083
diff changeset
  9032
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9033
vranyj1
parents: 1083
diff changeset
  9034
    sock := self validateFile:jsock.
vranyj1
parents: 1083
diff changeset
  9035
    sock notNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  9036
	FileIOTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  9037
	    'JAVA: datagram close socket' infoPrintCR
vranyj1
parents: 1083
diff changeset
  9038
	].
vranyj1
parents: 1083
diff changeset
  9039
	sock close.
vranyj1
parents: 1083
diff changeset
  9040
    ].
vranyj1
parents: 1083
diff changeset
  9041
vranyj1
parents: 1083
diff changeset
  9042
    "Modified: / 21.8.1997 / 17:09:40 / cg"
vranyj1
parents: 1083
diff changeset
  9043
    "Created: / 25.1.1998 / 20:04:24 / cg"
vranyj1
parents: 1083
diff changeset
  9044
!
vranyj1
parents: 1083
diff changeset
  9045
vranyj1
parents: 1083
diff changeset
  9046
_java_net_PlainDatagramSocketImpl_datagramSocketCreate: nativeContext
vranyj1
parents: 1083
diff changeset
  9047
vranyj1
parents: 1083
diff changeset
  9048
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketCreate()V'>
vranyj1
parents: 1083
diff changeset
  9049
vranyj1
parents: 1083
diff changeset
  9050
        |jsock fd sock fileNo|
vranyj1
parents: 1083
diff changeset
  9051
vranyj1
parents: 1083
diff changeset
  9052
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  9053
vranyj1
parents: 1083
diff changeset
  9054
    fd := jsock instVarNamed:'fd'.
vranyj1
parents: 1083
diff changeset
  9055
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
vranyj1
parents: 1083
diff changeset
  9056
        self halt:'file already open'.
vranyj1
parents: 1083
diff changeset
  9057
        self internalError:'file already open'.
vranyj1
parents: 1083
diff changeset
  9058
        self throwIOExceptionWithMessage:'file already open in socketCreate'.
vranyj1
parents: 1083
diff changeset
  9059
        ^ self.
vranyj1
parents: 1083
diff changeset
  9060
    ].
vranyj1
parents: 1083
diff changeset
  9061
vranyj1
parents: 1083
diff changeset
  9062
    FileOpenTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  9063
        ('JAVA: create datagram socket') infoPrintCR.
vranyj1
parents: 1083
diff changeset
  9064
    ].
vranyj1
parents: 1083
diff changeset
  9065
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9066
    sock := self commonOpenStreamUsing:[Socket newUDP].
1084
vranyj1
parents: 1083
diff changeset
  9067
    sock isNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  9068
        self throwIOExceptionWithMessage:'socketCreate failed'.
vranyj1
parents: 1083
diff changeset
  9069
    ].
vranyj1
parents: 1083
diff changeset
  9070
vranyj1
parents: 1083
diff changeset
  9071
    fileNo := self addOpenFile:sock.
vranyj1
parents: 1083
diff changeset
  9072
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9073
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9074
    jsock finalizationLobby registerChange: jsock
1084
vranyj1
parents: 1083
diff changeset
  9075
vranyj1
parents: 1083
diff changeset
  9076
    "Created: / 25-01-1998 / 19:59:25 / cg"
vranyj1
parents: 1083
diff changeset
  9077
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9078
    "Modified: / 23-07-2012 / 19:37:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  9079
!
vranyj1
parents: 1083
diff changeset
  9080
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9081
_java_net_PlainDatagramSocketImpl_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9082
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9083
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9084
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9085
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9086
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9087
    "Modified: / 13-09-2011 / 22:36:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9088
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9089
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9090
_java_net_PlainDatagramSocketImpl_receive0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9092
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'receive0(Ljava/net/DatagramPacket;)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9093
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9094
    ^ UnimplementedNativeMethodSignal raise
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9095
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9096
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9097
_java_net_PlainDatagramSocketImpl_send: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9098
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9099
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'send(Ljava/net/DatagramPacket;)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9100
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9101
        |jsock jdatagramPacket sock ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9102
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9103
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9104
    jdatagramPacket := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9105
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9106
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9107
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9108
	FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9109
	    ('JAVA: socket send') infoPrintCR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9110
	].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9111
	^ -1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9112
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9113
    ^ -1
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9114
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9115
    "Created: / 4.2.1998 / 15:06:20 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9116
    "Modified: / 30.12.1998 / 20:10:16 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9117
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9118
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9119
_java_net_PlainDatagramSocketImpl_socketSetOption: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9120
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9121
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'socketSetOption(ILjava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9122
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9123
        "/ native void socketSetOption (int arg1, java.lang.Object arg2)
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9124
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9125
    |jsock opt optVal sock ok err jSocketOptions|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9126
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9127
    jsock := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9128
    opt := nativeContext argAt:1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9129
    optVal := nativeContext argAt:2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9130
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9131
    sock := self validateFile:jsock.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9132
    sock notNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9133
	FileIOTrace ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9134
	    ('JAVA: socket setOption ' , opt printString) infoPrintCR
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9135
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9136
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9137
	jSocketOptions := Java at:'java.net.SocketOptions'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9138
	(opt == (jSocketOptions instVarNamed:'TCP_NODELAY')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9139
	] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9140
	    (opt == (jSocketOptions instVarNamed:'SO_BINDADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9141
	    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9142
		(opt == (jSocketOptions instVarNamed:'SO_REUSEADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9143
		] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9144
		    (opt == (jSocketOptions instVarNamed:'IP_MULTICAST_IF')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9145
		    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9146
			(opt == (jSocketOptions instVarNamed:'SO_LINGER')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9147
			] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9148
			    (opt == (jSocketOptions instVarNamed:'SO_TIMEOUT')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9149
			    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9150
				self throwIOExceptionWithMessage:'bad arg to setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9151
			    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9152
			]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9153
		    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9154
		]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9155
	    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9156
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9157
	self throwIOExceptionWithMessage:'unimplemented: setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9158
self halt.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9159
	^ nil.  "/ void
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9160
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9161
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9162
    "Created: / 4.2.1998 / 15:06:20 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9163
    "Modified: / 30.12.1998 / 20:10:16 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9164
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9165
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9166
_java_net_PlainSocketImpl_initProto: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9167
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9168
    <javanative: 'java/net/PlainSocketImpl' name: 'initProto'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9169
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9170
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9171
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9172
    "Created: / 12-01-1998 / 12:56:52 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9173
    "Modified (comment): / 13-09-2011 / 22:36:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9174
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9175
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9176
_java_net_PlainSocketImpl_socketAccept: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9177
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9178
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAccept(Ljava/net/SocketImpl;)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9179
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9180
    |jsock fd newJSock sock newSock fileNo|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9181
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9182
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9183
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9184
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9185
    sock isNil ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9186
        self throwIOExceptionWithMessage:'nil socket in accept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9187
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9188
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9189
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9190
    newJSock := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9191
    fd := newJSock instVarNamed:'fd'.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9192
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9193
        self halt:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9194
        self internalError:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9195
        self throwIOExceptionWithMessage:'socket already open in socketAccept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9196
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9197
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9198
    FileIOTrace ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9199
        'JAVA: socket accept' infoPrintCR
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9200
    ].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9201
    [
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9202
        newSock := self commonOpenStreamUsing:[sock accept].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9203
    ] on: Error do:[:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9204
        self throwSocketException:'accept failed: ' , ex description.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9205
        ^nil.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9206
    ].
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9207
    newSock isNil ifTrue:[
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9208
        self throwSocketException:'accept failed'.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9209
        ^nil.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9210
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9211
    fileNo := self addOpenFile:newSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9212
    fd instVarNamed:'fd' put:fileNo.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9213
    newJSock instVarNamed:'localport' put: newSock port.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9214
    newJSock instVarNamed:'port' put: newSock getPeer port.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9215
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9216
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9217
    newJSock finalizationLobby registerChange: newJSock.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9218
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9219
    "Created: / 04-02-1998 / 15:26:49 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9220
    "Modified: / 30-12-1998 / 20:10:01 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9221
    "Modified: / 23-07-2012 / 19:37:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9222
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9223
1110
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9224
_java_net_PlainSocketImpl_socketAvailable: nativeContext
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9225
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9226
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAvailable()I'>
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9227
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9228
        |jSock sock n|
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9229
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9230
    jSock := nativeContext receiver.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9231
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9232
    sock := self validateFile:jSock.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9233
    sock isNil ifTrue:[
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9234
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9235
	^ self.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9236
    ].
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9237
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9238
    n := sock numAvailable.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9239
    ^ n
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9240
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9241
    "Created: / 4.2.1998 / 16:58:49 / cg"
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9242
    "Modified: / 30.12.1998 / 20:10:08 / cg"
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9243
!
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9244
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9245
_java_net_PlainSocketImpl_socketBind: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9246
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9247
    <javanative: 'java/net/PlainSocketImpl' name: 'socketBind(Ljava/net/InetAddress;I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9248
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9249
    |jsock jaddr port sock hostName ok err|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9250
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9251
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9252
    jaddr := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9253
    port := nativeContext argAt:2.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9254
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9255
    hostName := jaddr instVarNamed:'hostName'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9256
    hostName isNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9257
        self halt.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9258
    ] ifFalse:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9259
        hostName := Java as_ST_String:hostName
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9260
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9261
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9262
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9263
    sock notNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9264
        FileIOTrace ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9265
            ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9266
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9267
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9268
        [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9269
            ok := sock bindTo:port address:nil "hostName".
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9270
        ] on: Error do: [:ex|
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9271
            self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9272
                throwExceptionClassName: 'java.net.BindException'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9273
                withMessage:'bind failed: ' , ex description.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9274
        ].
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9275
        ok ifFalse:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9276
            err := OperatingSystem lastErrorString.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9277
            self
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9278
                throwExceptionClassName: 'java.net.BindException'
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9279
                withMessage:'bind failed: ' , err.
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9280
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9281
       jsock instVarNamed: #localport put: sock port.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9282
       jsock instVarNamed: #address put: jaddr.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9283
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9284
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9285
    "Created: / 04-02-1998 / 15:06:20 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9286
    "Modified: / 30-12-1998 / 20:10:16 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9287
    "Modified: / 19-11-2011 / 00:43:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9288
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9289
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9290
_java_net_PlainSocketImpl_socketClose0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9291
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9292
    <javanative: 'java/net/PlainSocketImpl' name: 'socketClose0(Z)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9293
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9294
    ^self commonClose: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9295
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9296
    "Modified: / 07-11-2011 / 23:21:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9297
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9298
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9299
_java_net_PlainSocketImpl_socketConnect: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9300
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9301
    <javanative: 'java/net/PlainSocketImpl' name: 'socketConnect(Ljava/net/InetAddress;II)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9302
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9303
    |jsock jaddr port sock addr hostName ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9304
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9305
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9306
    jaddr := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9307
    port := nativeContext argAt:2.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9308
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9309
    hostName := jaddr instVarNamed:'hostName'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9310
    hostName notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9311
        hostName := Java as_ST_String:hostName
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9312
    ] ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9313
        addr := jaddr instVarNamed:'address'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9314
        addr notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9315
            hostName := ByteArray new:4.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9316
            hostName at:4 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9317
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9318
            hostName at:3 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9319
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9320
            hostName at:2 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9321
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9322
            hostName at:1 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9323
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9324
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9325
    hostName isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9326
        self halt.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9327
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9328
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9329
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9330
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9331
        FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9332
            Logger log: ('socket connect to ' , hostName printString , ' port ' , port printString) severity: #trace facility: #JVM.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9333
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9334
        SocketConnectConfirmation ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9335
            (PermittedHostConnects isNil
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9336
            or:[(PermittedHostConnects includes:hostName) not]) ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9337
                (self confirm:'connect to host: ' , hostName printString , ' - ok ?')
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9338
                ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9339
                    self throwIOExceptionWithMessage:'connect permission denied'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9340
                ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9341
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9342
                (self confirm:('JAVA Security check\\Always permit connects to this host (''' , hostName printString , ''') ?') withCRs)
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9343
                ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9344
                    PermittedHostConnects isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9345
                        PermittedHostConnects := Set new
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9346
                    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9347
                    PermittedHostConnects add:hostName.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9348
                ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9349
            ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9350
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9351
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9352
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9353
            ok := sock connectTo:hostName port:port.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9354
            ok ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9355
                self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed'.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9356
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9357
            jsock instVarNamed: #localport put: sock port.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9358
            jsock instVarNamed: #address put: jaddr.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9359
        ] on: Error do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9360
            self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed: ', ex description
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9361
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9362
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9363
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9364
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9365
    "Created: / 25-01-1998 / 20:02:27 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9366
    "Modified: / 30-12-1998 / 20:10:28 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9367
    "Modified: / 13-11-2011 / 23:16:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9368
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9369
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9370
_java_net_PlainSocketImpl_socketCreate: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9371
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9372
    <javanative: 'java/net/PlainSocketImpl' name: 'socketCreate(Z)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9373
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9374
    |jsock isStream fd sock fileNo|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9375
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9376
    jsock := nativeContext receiver.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9377
    isStream := (nativeContext argAt:1) == 1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9378
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9379
    fd := jsock instVarNamed:'fd'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9380
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9381
        self throwSocketException: 'null fd object'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9382
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9383
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9384
        self halt:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9385
        self internalError:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9386
        self throwSocketException:'socket already open in socketCreate'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9387
        ^ self.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9388
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9389
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9390
    FileOpenTrace ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9391
        ('JAVA: create socket') infoPrintCR.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9392
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9393
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9394
    isStream ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9395
        sock := self commonOpenStreamUsing:[JavaSocket newTCP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9396
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9397
        sock := self commonOpenStreamUsing:[JavaSocket newUDP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9398
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9399
    sock isNil ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9400
        self throwIOExceptionWithMessage:'socketCreate failed'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9401
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9402
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9403
    (jsock instVarNamed: #serverSocket) notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9404
        "/If this is a server socket then enable SO_REUSEADDR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9405
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9406
            Object primitiveFailureSignal
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9407
        ] on: Object primitiveFailureSignal do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9408
            self throwIOExceptionWithMessage:'cannot set SO_REUSEADDR: ' , ex description.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9409
            ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9410
        ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9411
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9412
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9413
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9414
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9415
    fileNo := self addOpenFile:sock.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9416
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9417
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9418
    jsock finalizationLobby registerChange: jsock
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9419
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9420
    "Created: / 25-01-1998 / 19:59:25 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9421
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9422
    "Modified: / 23-07-2012 / 19:38:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9423
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9424
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9425
_java_net_PlainSocketImpl_socketGetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9426
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9427
    <javanative: 'java/net/PlainSocketImpl' name: 'socketGetOption(ILjava/lang/Object;)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9428
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9429
    | opt arg sock ret |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9430
    opt := nativeContext argAt: 1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9431
    arg := nativeContext argAt: 2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9432
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9433
    sock := self validateFile: nativeContext receiver.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9434
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9435
"/  TCP_NODELAY = 1;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9436
    opt = 1 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9437
        ret := sock getSocketOption: #TCP_NODELAY.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9438
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9439
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9440
"/  SO_BINDADDR = 15;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9441
    opt = 15 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9442
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9443
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9444
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9445
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9446
"/  SO_REUSEADDR = 4;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9447
    opt = 4 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9448
        ret := sock getSocketOption: #SO_REUSEADDR.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9449
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9450
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9451
"/  IP_TOS = 3;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9452
    opt = 3 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9453
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9454
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9455
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9456
"/  SO_LINGER = 128;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9457
    opt = 128 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9458
        ret := sock getSocketOption:#SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9459
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9460
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9461
"/  SO_TIMEOUT = 4102;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9462
    opt = 4102 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9463
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9464
        ^-1 "/Unsupported                   .
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9465
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9466
"/  SO_SNDBUF = 4097;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9467
    opt = 4097 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9468
        ret := sock getSocketOption: #SO_SNDBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9469
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9470
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9471
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9472
"/  SO_RCVBUF = 4098;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9473
    opt = 4098 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9474
        ret := sock getSocketOption: #SO_RCVBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9475
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9476
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9477
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9478
"/  SO_KEEPALIVE = 8;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9479
    opt = 8 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9480
        ret := sock getSocketOption: #SO_KEEPALIVE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9481
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9482
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9483
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9484
"/  SO_OOBINLINE = 4099;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9485
    opt = 4099 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9486
        ret := sock getSocketOption: #SO_OOBINLINE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9487
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9488
    ]
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9489
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9490
    "Modified: / 13-11-2011 / 23:06:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9491
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9492
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9493
_java_net_PlainSocketImpl_socketListen: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9494
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9495
    <javanative: 'java/net/PlainSocketImpl' name: 'socketListen(I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9496
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9497
        |jSock time sock ok|
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9498
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9499
    jSock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9500
    time := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9501
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9502
    sock := self validateFile:jSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9503
    sock notNil ifTrue:[
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9504
        FileIOTrace ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9505
            ('JAVA: socket listen with timeout ' , time printString) infoPrintCR.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9506
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9507
        ok := sock listenFor:5.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9508
        ok ifFalse:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9509
            self throwIOExceptionWithMessage:'listen failed'.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9510
            ^ self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9511
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9512
        time ~~ 0 ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9513
            sock readWaitWithTimeoutMs:time
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9514
        ]
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9515
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9516
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9517
    "Created: / 04-02-1998 / 15:17:48 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9518
    "Modified: / 30-12-1998 / 20:10:46 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9519
    "Modified: / 17-08-2012 / 15:27:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9520
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9521
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9522
_java_net_PlainSocketImpl_socketSetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9523
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9524
    <javanative: 'java/net/PlainSocketImpl' name: 'socketSetOption(IZLjava/lang/Object;)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9525
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9526
    | opt on val sock o arg1 arg2 |
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9527
    opt := nativeContext argAt: 1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9528
    on  := nativeContext argAt: 2.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9529
    val := nativeContext argAt: 3.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9530
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9531
    sock := self validateFile: nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9532
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9533
"/  TCP_NODELAY = 1;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9534
    opt = 1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9535
        o := #TCP_NODELAY.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9536
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9537
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9538
"/  SO_BINDADDR = 15;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9539
    opt = 15 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9540
        ^self "/Unsupported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9541
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9542
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9543
"/  SO_REUSEADDR = 4;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9544
    opt = 4 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9545
        o := #SO_REUSEADDR.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9546
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9547
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9548
"/  IP_TOS = 3;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9549
    opt = 3 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9550
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9551
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9552
"/  SO_LINGER = 128;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9553
    opt = 128 ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9554
        o := #SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9555
        arg1 := (on == 1).
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9556
        arg2 := val instVarNamed: #value.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9557
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9558
"/  SO_TIMEOUT = 4102;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9559
    opt = 4102 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9560
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9561
                   .
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9562
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9563
"/  SO_SNDBUF = 4097;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9564
    opt = 4097 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9565
        o := #SO_SNDBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9566
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9567
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9568
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9569
"/  SO_RCVBUF = 4098;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9570
    opt = 4098 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9571
        o := #SO_RCVBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9572
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9573
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9574
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9575
"/  SO_KEEPALIVE = 8;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9576
    opt = 8 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9577
        o := #SO_KEEPALIVE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9578
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9579
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9580
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9581
"/  SO_OOBINLINE = 4099;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9582
    opt = 4099 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9583
        o := #SO_OOBINLINE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9584
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9585
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9586
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9587
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9588
        sock setSocketOption: o argument: arg1 argument: arg2.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9589
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9590
        self throwSocketException: 'Error setting socket option: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9591
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9592
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9593
    "Modified: / 13-11-2011 / 23:05:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9594
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9595
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9596
_java_net_SocketInputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9597
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9598
    <javanative: 'java/net/SocketInputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9599
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9600
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9601
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9602
    "Modified: / 09-11-2011 / 22:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9603
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9604
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9605
_java_net_SocketInputStream_socketRead0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9606
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9607
    <javanative: 'java/net/SocketInputStream' name: 'socketRead0(Ljava/io/FileDescriptor;[BIII)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9608
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9609
    | fdObj data off len timeout sock nread |
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9610
    fdObj   := nativeContext argAt:1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9611
    data    := nativeContext argAt:2.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9612
    off     := nativeContext argAt:3.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9613
    len     := nativeContext argAt:4.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9614
    timeout := nativeContext argAt:5.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9615
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9616
    fdObj isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9617
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9618
        ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9619
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9620
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9621
    sock := self validateFile: fdObj.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9622
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9623
    timeout ~~ 0 ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9624
        [
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9625
            (sock readWaitWithTimeout: timeout) ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9626
                self throwExceptionClassName:'java.net.SocketTimeoutException' withMessage: 'Read timed out'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9627
                ^ -1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9628
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9629
        ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9630
            self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9631
        ]
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9632
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9633
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9634
    [
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9635
        nread := sock nextAvailableBytes: len into: data startingAt: off + 1
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9636
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9637
        self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9638
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9639
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9640
    ^nread
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9641
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9642
    "Modified: / 04-12-2011 / 20:24:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9643
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9644
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9645
_java_net_SocketOutputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9646
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9647
    <javanative: 'java/net/SocketOutputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9648
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9649
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9650
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9651
    "Modified: / 09-11-2011 / 23:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9652
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9653
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9654
_java_net_SocketOutputStream_socketWrite0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9655
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9656
    <javanative: 'java/net/SocketOutputStream' name: 'socketWrite0(Ljava/io/FileDescriptor;[BII)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9657
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9658
    | fdObj data off len  sock |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9659
    fdObj   := nativeContext argAt:1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9660
    data    := nativeContext argAt:2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9661
    off     := nativeContext argAt:3.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9662
    len     := nativeContext argAt:4.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9663
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9664
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9665
    fdObj isNil ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9666
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9667
        ^ -1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9668
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9669
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9670
    sock := self validateFile: fdObj.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9671
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9672
    [
1136
2a94c9946e7e Fixes in socket read/write
vranyj1
parents: 1135
diff changeset
  9673
        sock nextPutBytes: len from: data startingAt: off + 1.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9674
    ] on: Error do:[:ex|
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9675
        self throwIOExceptionWithMessage: 'Error when writing: ', ex description.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9676
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9677
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9678
    "Modified: / 13-11-2011 / 23:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9679
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9680
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9681
!JavaVM class methodsFor:'native - java.nio'!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9682
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9683
_java_nio_Bits_copyFromByteArray: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9684
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9685
    static native void copyFromByteArray(Object src, long srcPos, long dstAddr,
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9686
                                         long length);
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9687
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9688
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9689
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9690
    <javanative: 'java/nio/Bits' name: 'copyFromByteArray(Ljava/lang/Object;JJJ)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9691
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9692
    | src srcPos dstAddr length |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9693
    src := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9694
    srcPos := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9695
    dstAddr := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9696
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9697
    SimulatedNativeMemory  bcopy: dstAddr length: length from: src offset: srcPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9698
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9699
    "Modified: / 11-07-2012 / 10:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9700
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9701
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9702
_java_nio_Bits_copyToByteArray: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9703
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9704
    static native void copyToByteArray(long srcAddr, Object dst, long dstPos,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9705
                                       long length);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9706
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9707
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9708
    <javanative: 'java/nio/Bits' name: 'copyToByteArray(JLjava/lang/Object;JJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9709
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9710
    | srcAddr dst dstPos length |
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9711
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9712
    srcAddr := nativeContext argAt: 1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9713
    dst := nativeContext argAt: 3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9714
    dstPos := nativeContext argAt: 4.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9715
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9716
    SimulatedNativeMemory bcopy: srcAddr length: length into: dst offset: dstPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9717
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9718
    "Modified: / 11-07-2012 / 10:34:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9719
! !
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9720
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9721
!JavaVM class methodsFor:'native - java.security'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9722
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9723
_java_security_AccessController_doPrivileged: aJavaContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9724
    <javanative: 'java/security/AccessController' name: 'doPrivileged'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9725
    "we don't care about permissions, we will just allow this. Now it's guaranteed that called code will not perform access permission checks"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9726
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9727
    | retval |
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9728
    JavaVM privilegedAccessQuery answer: true
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9729
        do: [
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9730
            retval := (aJavaContext argAt: 1) perform: #'run()Ljava/lang/Object;'.
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9731
        ].
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9732
    ^ retval
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9733
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9734
    "Created: / 20-10-2010 / 12:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1017
23971b5214d8 removed useless infoPrintCR
hlopkmar
parents: 1016
diff changeset
  9735
    "Modified: / 09-10-2011 / 23:56:31 / Marcel Hlopko <hlopik@gmail.com>"
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9736
    "Modified: / 18-10-2011 / 23:28:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1702
02f20e0f9a14 on the way for passing test suite
hlopkmar
parents: 1701
diff changeset
  9737
    "Modified: / 10-09-2012 / 23:22:59 / m"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9738
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9739
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9740
_java_security_AccessController_getStackAccessControlContext: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9741
    <javanative: 'java/security/AccessController' name: 'getStackAccessControlContext'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9742
    "/ introduced with jdk1.2
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9743
    "/ supposed to do more here ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9744
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9745
    ^nil.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9746
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9747
    "Created: / 27-01-1998 / 18:22:15 / cg"
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9748
    "Modified: / 09-10-2011 / 23:40:46 / Marcel Hlopko <hlopik@gmail.com>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9749
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9750
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9751
!JavaVM class methodsFor:'native - java.sql'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9752
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9753
_java_sql_DriverManager_getCallerClassLoader: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9754
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9755
    <javanative: 'java/sql/DriverManager' name: 'getCallerClassLoader()Ljava/lang/ClassLoader;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9756
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9757
    ^nativeContext
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9758
        sender sender
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9759
        receiver class theNonMetaclass
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9760
        classLoader
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9761
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9762
    "Modified: / 05-12-2011 / 11:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9763
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9764
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9765
!JavaVM class methodsFor:'native - java.text'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9766
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9767
_java_text_Bidi_nativeBidiChars: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9768
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9769
    <javanative: 'java/text/Bidi' name: 'nativeBidiChars(Ljava/text/Bidi;[CI[BIII)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9770
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9771
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9772
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9773
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9774
!JavaVM class methodsFor:'native - java.util'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9775
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9776
_java_util_ResourceBundle_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9777
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9778
    <javanative: 'java/util/ResourceBundle' name: 'getClassContext'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9779
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9780
    "returns an array filled with the contextChain receivers classes.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9781
     What an ugly, messy interface."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9782
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9783
    |chain con cls jClass|
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9784
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9785
    chain := OrderedCollection new.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9786
    con := thisContext sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9787
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9788
        con notNil
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9789
            and:[con receiver isMethod not or:[con receiver isJavaMethod not]]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9790
    ] whileTrue:[con := con sender.].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9791
    con := con sender sender.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9792
    [con notNil] whileTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9793
        (true) "con isJavaContext" ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9794
            cls := con receiver class.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9795
            cls isMeta ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9796
                "/ t'was a static method
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9797
                cls := cls soleInstance
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9798
            ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9799
            cls isJavaClass ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9800
                jClass := self reflection javaClassObjectForClass:cls.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9801
                chain add:jClass.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9802
            ]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9803
        ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9804
        con := con sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9805
    ].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9806
    ^(self classForName:'java.lang.Class') javaArrayClass withAll: chain
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9807
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9808
    "Created: / 05-01-1998 / 02:47:00 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9809
    "Modified: / 24-12-1998 / 00:34:57 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9810
    "Modified: / 28-01-2011 / 15:31:28 / Marcel Hlopko <hlopik@gmail.com>"
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9811
    "Modified: / 08-12-2011 / 01:13:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9812
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9813
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9814
_java_util_TimeZone_getSystemTimeZoneID: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9815
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9816
    <javanative: 'java/util/TimeZone' name: 'getSystemTimeZoneID'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9817
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9818
    "JV@2011-06-25: TODO: finish, returning nil here means GMT"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9819
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9820
    ^ nil
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9821
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9822
    "Modified: / 25-06-2011 / 08:26:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9823
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9824
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9825
!JavaVM class methodsFor:'native - java.util.concurrent.atomic'!
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9826
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9827
_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8: nativeContext
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9828
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9829
    <javanative: 'java/util/concurrent/atomic/AtomicLong' name: 'VMSupportsCS8'>
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9830
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9831
    "Should be safe - say we don't support lockless updates"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9832
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9833
    ^ 0
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9834
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9835
    "Modified: / 07-08-2011 / 20:53:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9836
! !
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9837
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9838
!JavaVM class methodsFor:'native - java.util.jar'!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9839
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9840
_java_util_jar_JarFile_getMetaInfEntryNames: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9841
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9842
    <javanative: 'java/util/jar/JarFile' name: 'getMetaInfEntryNames'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9843
    "
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9844
    private native String[] getMetaInfEntryNames();
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9845
    "
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9846
    | zipArchive entries jentries |
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9847
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9848
    zipArchive := ZipCache at: (nativeContext receiver instVarNamed: #jzfile).
1865
96e851c925de Updates in .zip support to reflect changes in ZipArchive.
vranyj1
parents: 1864
diff changeset
  9849
    entries := (zipArchive entries select:[:entry|entry size > 9 and:[entry startsWith: 'META-INF/']]) asArray.
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9850
    jentries := Java java_lang_String javaArrayClass new: entries size.
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9851
    1 to: entries size do:[:i|
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9852
        jentries at: i put: (Java as_String: (entries at: i))
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9853
    ].
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9854
    ^jentries
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9855
1865
96e851c925de Updates in .zip support to reflect changes in ZipArchive.
vranyj1
parents: 1864
diff changeset
  9856
    "Modified: / 10-12-2012 / 05:42:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9857
! !
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9858
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9859
!JavaVM class methodsFor:'native - java.util.zip'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9860
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9861
_java_util_zip_Adler32_updateBytes: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9862
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9863
    <javanative: 'java/util/zip/Adler32' name: 'updateBytes'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9864
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9865
    ^ UnimplementedNativeMethodSignal raise
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9866
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9867
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9868
_java_util_zip_CRC32_update: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9869
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9870
    <javanative: 'java/util/zip/CRC32' name: 'update(II)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9871
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9872
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9873
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9874
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9875
_java_util_zip_CRC32_updateBytes: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9876
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9877
    <javanative: 'java/util/zip/CRC32' name: 'updateBytes(I[BII)I'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9878
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9879
    | crc b off len |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9880
    crc := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9881
    b   := nativeContext argAt: 2.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9882
    off := nativeContext argAt: 3.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9883
    len := nativeContext argAt: 4.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9884
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9885
    ^ZipStream crc32BytesIn:b from:off + 1  to: off + len crc:crc
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9886
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9887
    "Modified: / 05-12-2011 / 00:41:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9888
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9889
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9890
_java_util_zip_Deflater_deflateBytes: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9891
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9892
    <javanative: 'java/util/zip/Deflater' name: 'deflateBytes(J[BII)I'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9893
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9894
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9895
    private native int deflateBytes(long addr, byte[] b, int off, int len);
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9896
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9897
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9898
    | addr b off len deflater ret |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9899
    addr := nativeContext argAt: 1."long takes 2 slots"
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9900
    b := nativeContext argAt: 3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9901
    off := nativeContext argAt: 4.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9902
    len := nativeContext argAt: 5.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9903
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9904
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9905
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9906
    ret := deflater deflate: b offset: off length: len flush: 0 deflater: nativeContext receiver.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9907
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9908
    ^ret.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9909
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9910
    "Modified: / 25-10-2012 / 20:19:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9911
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9912
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9913
_java_util_zip_Deflater_end: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9914
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9915
    <javanative: 'java/util/zip/Deflater' name: 'end(J)V'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9916
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9917
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9918
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9919
    deflater := ZipInflaters at: addr.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9920
    ZipInflaters at: addr put: nil.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9921
    deflater end.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9922
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9923
    "Modified: / 25-10-2012 / 20:24:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9924
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9925
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9926
_java_util_zip_Deflater_getBytesRead: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9927
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9928
    <javanative: 'java/util/zip/Deflater' name: 'getBytesRead(J)J'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9929
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9930
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9931
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9932
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9933
    ^deflater bytesRead.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9934
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9935
    "Modified: / 25-10-2012 / 20:19:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9936
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9937
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9938
_java_util_zip_Deflater_getBytesWritten: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9939
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9940
    <javanative: 'java/util/zip/Deflater' name: 'getBytesWritten(J)J'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9941
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9942
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9943
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9944
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9945
    ^deflater bytesWritten.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9946
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9947
    "Modified: / 25-10-2012 / 20:19:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9948
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9949
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9950
_java_util_zip_Deflater_init: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9951
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9952
    <javanative: 'java/util/zip/Deflater' name: 'init(IIZ)J'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9953
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9954
    | level strategy nowrap deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9955
    level := nativeContext argAt: 1.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9956
    strategy := nativeContext argAt: 2.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9957
    nowrap := nativeContext argAt:3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9958
    deflater := JavaZipSupport deflaterFor: self.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9959
    deflater init: strategy level: level nowrap: nowrap.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9960
    1 to: ZipInflaters size do:[:i|
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9961
        (ZipInflaters at: i) isNil ifTrue:[
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9962
            ZipInflaters at: i put: deflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9963
            ^i
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9964
        ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9965
    ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9966
    ZipInflaters add: deflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9967
    ^ZipInflaters size.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9968
    "/^deflater
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9969
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9970
    "Modified: / 25-10-2012 / 20:25:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9971
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9972
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
  9973
_java_util_zip_Deflater_initIDs: nativeContext
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9974
    <javanative: 'java/util/zip/Deflater' name: 'initIDs'>
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9975
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9976
    "Nothing to do here"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9977
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9978
    "Modified: / 08-12-2011 / 21:11:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9979
    "Modified: / 10-05-2012 / 17:03:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9980
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9981
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9982
_java_util_zip_Deflater_reset: nativeContext
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9983
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9984
    <javanative: 'java/util/zip/Deflater' name: 'reset(J)V'>
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9985
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9986
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9987
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9988
    deflater := ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9989
    deflater reset.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9990
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
  9991
    "Modified: / 25-10-2012 / 20:19:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9992
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9993
1083
vranyj1
parents: 1081
diff changeset
  9994
_java_util_zip_Inflater_end: nativeContext
vranyj1
parents: 1081
diff changeset
  9995
vranyj1
parents: 1081
diff changeset
  9996
    <javanative: 'java/util/zip/Inflater' name: 'end(J)V'>
vranyj1
parents: 1081
diff changeset
  9997
vranyj1
parents: 1081
diff changeset
  9998
     "
vranyj1
parents: 1081
diff changeset
  9999
    private native static void reset(long addr);
vranyj1
parents: 1081
diff changeset
 10000
    "
vranyj1
parents: 1081
diff changeset
 10001
    | addr inflater |
vranyj1
parents: 1081
diff changeset
 10002
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10003
    inflater := ZipInflaters at: addr.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10004
    ZipInflaters at: addr put: nil.
1083
vranyj1
parents: 1081
diff changeset
 10005
    inflater end.
vranyj1
parents: 1081
diff changeset
 10006
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10007
    "Modified: / 25-10-2012 / 20:24:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1083
vranyj1
parents: 1081
diff changeset
 10008
!
vranyj1
parents: 1081
diff changeset
 10009
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10010
_java_util_zip_Inflater_getBytesRead: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10011
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10012
    <javanative: 'java/util/zip/Inflater' name: 'getBytesRead(J)J'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10013
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10014
    | addr inflater |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10015
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10016
    inflater := ZipInflaters at: addr.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10017
    ^inflater bytesRead.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10018
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10019
    "Modified: / 25-10-2012 / 20:20:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10020
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 10021
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10022
_java_util_zip_Inflater_getBytesWritten: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10023
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10024
    <javanative: 'java/util/zip/Inflater' name: 'getBytesWritten'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10025
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10026
    | addr inflater |
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10027
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10028
    inflater := ZipInflaters at: addr.
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10029
    ^inflater bytesWritten.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
 10030
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10031
    "Modified: / 25-10-2012 / 20:20:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10032
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10033
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10034
_java_util_zip_Inflater_inflateBytes: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10035
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10036
    <javanative: 'java/util/zip/Inflater' name: 'inflateBytes'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10037
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10038
    private native int inflateBytes(long addr, byte[] b, int off, int len)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10039
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10040
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10041
    | addr b off len inflater ret |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10042
    addr := nativeContext argAt: 1."long takes 2 slots"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10043
    b := nativeContext argAt: 3.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10044
    off := nativeContext argAt: 4.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10045
    len := nativeContext argAt: 5.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10046
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10047
    inflater := ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10048
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10049
    ret := inflater inflate: b offset: off length: len inflater: nativeContext receiver.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10050
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10051
    ^ret.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10052
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10053
    "Created: / 30-04-2011 / 23:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10054
    "Modified: / 25-10-2012 / 20:20:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10055
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10056
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10057
_java_util_zip_Inflater_init: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10058
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10059
    <javanative: 'java/util/zip/Inflater' name: 'init'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10060
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10061
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10062
    | nowrap inflater |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10063
    nowrap := nativeContext argAt:1.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10064
    inflater := JavaZipSupport inflaterFor: self.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10065
    inflater init: nowrap.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10066
    1 to: ZipInflaters size do:[:i|
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10067
        (ZipInflaters at: i) isNil ifTrue:[
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10068
            ZipInflaters at: i put: inflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10069
            ^i
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10070
        ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10071
    ].
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10072
    ZipInflaters add: inflater.
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10073
    ^ ZipInflaters size.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10075
    "Created: / 01-02-1998 / 20:14:01 / cg"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10076
    "Modified: / 25-10-2012 / 20:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10077
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10078
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10079
_java_util_zip_Inflater_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10081
    <javanative: 'java/util/zip/Inflater' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10082
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10083
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10084
    "Nothing to do, used only to register natives"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10086
    "Created: / 30-04-2011 / 21:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10087
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10088
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10089
_java_util_zip_Inflater_reset: nativeContext
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10090
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10091
    <javanative: 'java/util/zip/Inflater' name: 'reset'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10092
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10093
    private native static void reset(long addr);
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10094
    "
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10095
    | addr inflater |
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 10096
    addr := nativeContext argAt: 1.
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10097
    inflater := ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
 10098
    inflater reset.
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10099
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10100
    "Created: / 01-02-1998 / 20:14:13 / cg"
1746
475fce490520 - Use ZipInflaters array (no direct referenceto JavaZipSupport::Inflater/Deflater in Java objects)
vranyj1
parents: 1735
diff changeset
 10101
    "Modified: / 25-10-2012 / 20:20:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10102
!
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
 10103
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10104
_java_util_zip_ZipEntry_initFields: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10105
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10106
    <javanative: 'java/util/zip/ZipEntry' name: 'initFields'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10108
        | entry jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10110
    entry := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10111
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10112
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10113
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10114
    entry
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10115
        instVarNamed: #name     put: (Java as_String: zmember fileName);
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10116
        instVarNamed: #time     put: -1"zmember lastModFileTime";
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10117
        instVarNamed: #crc      put: zmember crc32;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10118
        instVarNamed: #size     put: zmember uncompressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10119
        instVarNamed: #csize    put: zmember compressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10120
        instVarNamed: #method   put: zmember compressionMethod;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10121
        instVarNamed: #extra    put: zmember extraField;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10122
        instVarNamed: #comment  put: (zmember fileComment ifNotNil:[Java as_String: zmember fileComment]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10124
    "Created: / 01-04-2011 / 13:04:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
 10125
    "Modified: / 05-12-2011 / 23:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10126
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10127
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10128
_java_util_zip_ZipEntry_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10129
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10130
    <javanative: 'java/util/zip/ZipEntry' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10132
        "hopefully nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10133
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10134
    "Created: / 01-04-2011 / 13:02:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10135
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10136
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10137
_java_util_zip_ZipFile_close: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10138
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10139
    <javanative: 'java/util/zip/ZipFile' name: 'close(J)V'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10140
1083
vranyj1
parents: 1081
diff changeset
 10141
    | jzfile zar |
vranyj1
parents: 1081
diff changeset
 10142
    jzfile := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
 10143
    zar := ZipCache at: jzfile.
vranyj1
parents: 1081
diff changeset
 10144
    zar close.
vranyj1
parents: 1081
diff changeset
 10145
    ZipCache at: jzfile put: nil.
vranyj1
parents: 1081
diff changeset
 10146
vranyj1
parents: 1081
diff changeset
 10147
    "Modified: / 03-11-2011 / 22:22:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10148
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 10149
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10150
_java_util_zip_ZipFile_freeEntry: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10151
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10152
    <javanative: 'java/util/zip/ZipFile' name: 'freeEntry'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10153
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10154
    | zipArchiveIndex  zipEntryIndex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10157
    zipArchiveIndex := nativeContext at: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10158
    zipEntryIndex := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10159
    zipEntryIndex = 0 ifFalse: [ ZipEntryCache at: zipEntryIndex put: nil ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10161
    "Modified: / 01-05-2011 / 13:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10162
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10164
_java_util_zip_ZipFile_getCSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10165
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10166
    <javanative: 'java/util/zip/ZipFile' name: 'getCSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10167
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10168
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10169
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10170
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10171
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10173
    ^zmember compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10174
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10175
    "Created: / 30-04-2011 / 21:50:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10176
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10177
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10178
_java_util_zip_ZipFile_getEntry: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10179
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10180
    <javanative: 'java/util/zip/ZipFile' name: 'getEntry'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10181
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
 10182
    | zipArchive  filename  member |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10183
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10184
    zipArchive := ZipCache at: (nativeContext argAt: 1).
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10185
    filename := Java as_ST_String: (nativeContext argAt: 3).
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10186
    member := (zipArchive findMemberAllowForMissingTrailingSlash: filename).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10187
    member isNil ifTrue: [
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10188
        ^ 0
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10189
    ] ifFalse: [
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10190
        ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10191
            ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10192
            ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10193
        ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10194
    ]
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10195
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10196
    "Created: / 27-03-2011 / 16:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10197
    "Modified: / 01-04-2011 / 16:03:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
 10198
    "Modified: / 18-08-2011 / 19:44:56 / jv"
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10199
    "Modified: / 20-07-2012 / 19:27:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10200
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10201
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10202
_java_util_zip_ZipFile_getMethod: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10204
    <javanative: 'java/util/zip/ZipFile' name: 'getMethod'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10205
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10206
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10207
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10208
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10209
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10210
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10211
    ^zmember compressionMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10213
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10214
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10215
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10216
_java_util_zip_ZipFile_getNextEntry: nativeContext
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10218
    <javanative: 'java/util/zip/ZipFile' name: 'getNextEntry(JI)J'>
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10219
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10220
    | zipArchive  index i |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10221
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10222
    zipArchive := ZipCache at: (nativeContext at: 1).
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10223
    index := nativeContext at: 3.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10224
    i := 0.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10225
    zipArchive zipMembersDo:[:member |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10226
        index == i ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10227
            ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10228
                ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10229
                ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10230
            ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10231
        ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10232
        i := i + 1.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10233
    ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10234
    ^0
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10235
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10236
    "Modified: / 05-12-2011 / 11:19:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10237
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10238
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10239
_java_util_zip_ZipFile_getSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10241
    <javanative: 'java/util/zip/ZipFile' name: 'getSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10242
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10243
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10244
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10245
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10246
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10247
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10248
    ^zmember uncompressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10250
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10251
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10253
_java_util_zip_ZipFile_getTotal: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10255
    <javanative: 'java/util/zip/ZipFile' name: 'getTotal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10256
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10257
    | zar|
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10258
    zar := ZipCache at: (nativeContext argAt: 1).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10259
    ^ zar entries size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10260
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10261
    "Modified: / 23-07-2012 / 23:35:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10262
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10264
_java_util_zip_ZipFile_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10266
    <javanative: 'java/util/zip/ZipFile' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10267
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10268
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10269
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10270
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10271
    "Created: / 23-03-2011 / 19:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10272
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10274
_java_util_zip_ZipFile_open: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10275
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10276
    <javanative: 'java/util/zip/ZipFile' name: 'open'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10277
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10278
    | path  mode  lastModTime  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10279
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10280
    path := Java as_ST_String: (nativeContext at: 1).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10281
    "/(path endsWith:'.jar') ifFalse:[self breakPoint: #jv].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10282
    mode := nativeContext at: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10283
    lastModTime := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10284
    result := path asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10285
    result ifNil: [ JavaVM throwZipException ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10286
    ^[
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10287
        | i zar |
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10288
        zar := ZipArchive readingFrom: result readStream.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10289
        i := ZipCache indexOf: nil.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10290
        i ~~ 0 ifTrue:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10291
            ZipCache at: i put: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10292
            i
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10293
        ] ifFalse:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10294
            ZipCache add: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10295
            ZipCache size.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10296
        ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10297
    ] on: Error do:[:ex|
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10298
        self throwZipException: 'Cannot open zip file: ', ex description
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10299
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10301
    "Modified: / 01-04-2011 / 15:35:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10302
    "Modified: / 20-07-2012 / 21:48:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10303
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10304
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10305
_java_util_zip_ZipFile_read: aJavaContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10306
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10307
    <javanative: 'java/util/zip/ZipFile' name: 'read'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10308
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10309
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10310
    | jzfile jzentry pos b off len zar zmember bytesToRead |
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10311
    jzfile := aJavaContext argAt: 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10312
    jzentry := aJavaContext argAt: 3. "first arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10313
    pos := aJavaContext argAt: 5. "jzentry arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10314
    b := aJavaContext argAt: 7.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10315
    off := aJavaContext argAt: 8.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10316
    len := aJavaContext argAt: 9.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10317
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10318
    zar := ZipCache at: jzfile.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10319
    zmember := ZipEntryCache at: jzentry.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10320
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10321
    bytesToRead := len min: (zmember compressedSize - pos).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10322
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10323
    ^zar nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off + 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10324
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10325
    "Created: / 30-04-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10326
    "Modified: / 01-05-2011 / 16:22:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10327
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10329
!JavaVM class methodsFor:'native - old-style'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10330
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10331
_AccessController_beginPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10332
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10334
    "Created: / 27.1.1998 / 18:18:11 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10335
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10336
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10337
_AccessController_endPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10338
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10339
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10340
    "Created: / 27.1.1998 / 18:18:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10341
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10342
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10343
_AudioDevice_audioClose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10344
    |device fd stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10346
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10347
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10348
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10349
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10350
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10351
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10352
		stream close.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10353
		device instVarNamed:'dev' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10354
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10355
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10356
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10357
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10358
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10359
    "Modified: / 13.1.1998 / 18:08:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10360
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10361
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10362
_AudioDevice_audioOpen:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10363
    |f stream fileNo|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10365
    NoAudio ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10366
        Transcript showCR:'JAVA: audio disabled'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10367
        ^ -1
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10368
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10370
    Stream streamErrorSignal handle:[:ex |
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10371
        Stream streamErrorSignal handle:[:ex |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10372
            stream := nil.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10373
            ex return.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10374
        ] do:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10375
            stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10376
        ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10377
    ] do:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10378
        stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10379
        stream notNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10380
            stream setSampleRate:8000.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10381
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10382
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10383
    stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10384
"/        ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10385
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10386
        f := '/dev/audio' asFilename.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10387
        f exists ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10388
            Transcript showCR:'JAVA: neither SoundStream nor /dev/audio available'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10389
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10390
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10391
        stream := self commonOpenStreamUsing: [f readWriteStream].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10392
        stream isNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10393
            Transcript showCR:'JAVA: /dev/audio exists, but cannot be opened'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10394
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10395
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10396
        fileNo := self addOpenFile:stream.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10397
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10398
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10399
    fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10401
    FileOpenTrace ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10402
        ('JAVA: opened audioDevice as FD ' , fileNo printString) infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10403
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10404
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10405
    ^ fileNo
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10406
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10407
    "Created: / 10-01-1998 / 15:45:30 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10408
    "Modified: / 14-10-1998 / 15:20:52 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10409
    "Modified: / 23-07-2012 / 19:36:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10410
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10412
_AudioDevice_audioWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10413
    |device fd stream bytes count|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10414
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10415
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10416
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10417
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10418
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10419
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10420
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10421
		bytes := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10422
		count := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10423
		stream nextPutBytes:count from:bytes startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10424
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10425
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10426
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10428
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10429
    "Modified: / 13.1.1998 / 18:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10430
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10431
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10432
_BigInteger_plumbInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10433
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10435
    "Modified: / 12.11.1998 / 19:23:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10436
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10437
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10438
_ColorModel_deletepData:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10439
    "/ void deletepData ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10440
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10442
    "Created: / 12.11.1998 / 19:22:05 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10443
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10444
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10445
_ColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10446
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10447
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10448
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10449
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10451
_Constructor_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10452
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10453
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10454
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10456
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10457
    "Created: / 27.1.2000 / 02:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10458
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10459
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10460
_Constructor_newInstance:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10461
    "/ java.lang.Object newInstance (java.lang.Object[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10462
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10463
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10465
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10466
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10467
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10468
_Double_doubleToLongBits:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10469
    |f i|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10470
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10471
    f := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10472
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10473
    UninterpretedBytes isBigEndian ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10474
	i := f basicAt:8.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10475
	i := i bitOr:((f basicAt:7) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10476
	i := i bitOr:((f basicAt:6) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10477
	i := i bitOr:((f basicAt:5) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10478
	i := i bitOr:((f basicAt:4) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10479
	i := i bitOr:((f basicAt:3) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10480
	i := i bitOr:((f basicAt:2) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10481
	i := i bitOr:((f basicAt:1) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10482
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10483
	i := f basicAt:1.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10484
	i := i bitOr:((f basicAt:2) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10485
	i := i bitOr:((f basicAt:3) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10486
	i := i bitOr:((f basicAt:4) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10487
	i := i bitOr:((f basicAt:5) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10488
	i := i bitOr:((f basicAt:6) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10489
	i := i bitOr:((f basicAt:7) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10490
	i := i bitOr:((f basicAt:8) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10491
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10492
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10493
    ^ i.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10494
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10495
    "Created: / 4.1.1998 / 01:39:12 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10496
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10497
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10498
_Double_valueOf0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10499
    |s d|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10501
    s := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10502
    s notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10503
	s := Java as_ST_String:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10504
	d := Float readFrom:s onError:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10505
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10506
    d isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10507
	self throwNumberFormatException.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10508
	"/ not reached
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10509
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10511
    ^ d
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10512
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10513
    "Modified: / 8.8.1997 / 12:03:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10514
    "Created: / 7.1.1998 / 11:09:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10515
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10517
_Field_get:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10518
    "/ java.lang.Object get (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10519
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10520
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10522
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10523
    "Created: / 27.1.2000 / 03:04:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10524
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10526
_Field_getBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10527
    "/ boolean getBoolean (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10528
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10529
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10531
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10532
    "Created: / 27.1.2000 / 03:05:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10533
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10535
_Field_getByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10536
    "/ byte getByte (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10538
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10540
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10541
    "Created: / 27.1.2000 / 03:05:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10542
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10543
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10544
_Field_getChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10545
    "/ char getChar (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10546
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10547
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10549
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10550
    "Created: / 27.1.2000 / 03:03:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10551
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10552
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10553
_Field_getDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10554
    "/ double getDouble (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10556
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10557
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10558
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10559
    "Created: / 27.1.2000 / 03:07:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10560
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10562
_Field_getFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10563
    "/ float getFloat (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10565
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10566
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10567
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10568
    "Created: / 27.1.2000 / 03:05:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10569
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10570
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10571
_Field_getInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10572
    "/ int getInt (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10573
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10574
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10575
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10576
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10577
    "Created: / 27.1.2000 / 03:04:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10578
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10580
_Field_getLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10581
    "/ long getLong (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10582
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10583
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10584
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10585
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10586
    "Created: / 27.1.2000 / 03:05:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10587
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10588
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10589
_Field_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10590
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10591
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10592
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10594
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10595
    "Created: / 27.1.2000 / 03:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10596
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10598
_Field_getShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10599
    "/ unsigned short getShort (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10600
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10601
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10602
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10603
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10604
    "Created: / 27.1.2000 / 03:07:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10605
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10606
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10607
_Field_set:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10608
    "/ void set (java.lang.Object java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10609
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10610
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10612
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10613
    "Created: / 27.1.2000 / 03:04:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10614
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10616
_Field_setBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10617
    "/ void setBoolean (java.lang.Object boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10619
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10620
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10621
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10622
    "Created: / 27.1.2000 / 03:06:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10623
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10624
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10625
_Field_setByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10626
    "/ void setByte (java.lang.Object byte)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10627
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10628
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10630
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10631
    "Created: / 27.1.2000 / 03:06:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10632
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10633
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10634
_Field_setChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10635
    "/ void setChar (java.lang.Object char)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10636
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10637
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10639
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10640
    "Created: / 27.1.2000 / 03:03:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10641
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10642
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10643
_Field_setDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10644
    "/ void setDouble (java.lang.Object double)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10645
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10646
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10647
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10648
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10649
    "Created: / 27.1.2000 / 03:04:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10650
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10651
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10652
_Field_setFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10653
    "/ void setFloat (java.lang.Object float)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10654
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10655
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10656
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10657
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10658
    "Created: / 27.1.2000 / 03:06:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10659
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10661
_Field_setInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10662
    "/ void setInt (java.lang.Object int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10663
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10664
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10665
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10666
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10667
    "Created: / 27.1.2000 / 03:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10668
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10669
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10670
_Field_setLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10671
    "/ void setLong (java.lang.Object long)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10673
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10675
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10676
    "Created: / 27.1.2000 / 03:06:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10677
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10679
_Field_setShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10680
    "/ void setShort (java.lang.Object unsigned short)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10681
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10682
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10683
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10684
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10685
    "Created: / 27.1.2000 / 03:03:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10686
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10688
_FileDescriptor_initSystemFD:nativeContext
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10689
    |descriptor fileNo myStream|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10691
    descriptor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10692
    fileNo := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10694
    fileNo == 0 ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10695
        myStream := Stdin
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10696
    ] ifFalse:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10697
        fileNo == 1 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10698
           myStream := JavaConsoleStream ? Stdout
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10699
        ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10700
            fileNo == 2 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10701
                myStream := JavaConsoleStream ? Stderr
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10702
            ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10703
                self halt:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10704
                self internalError:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10705
            ]
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10706
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10707
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10709
    self setOpenFile:myStream at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10711
    descriptor instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10712
    ^ descriptor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10713
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10714
    "Modified: / 27-01-1998 / 18:15:28 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10715
    "Modified (format): / 28-07-2012 / 02:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10716
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10717
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10718
_FileDescriptor_valid:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10719
    "/ boolean valid ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10720
    |descriptor fileNo stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10722
    descriptor := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10723
    fileNo := descriptor instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10724
    stream := self getOpenFileAt:fileNo.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10725
    stream isNil ifTrue:[^ 0]. "/ FALSE
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 10726
    stream isOpen ifFalse:[^ 0].  "/ FALSE
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10727
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10728
    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10730
    "Modified: / 11.12.1998 / 13:02:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10731
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10733
_FileInputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10734
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10736
    "Created: / 4.1.1998 / 17:45:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10737
    "Modified: / 4.2.1998 / 15:20:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10738
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10740
_FileOutputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10741
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10743
    "Created: / 13.1.1998 / 09:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10744
    "Modified: / 4.2.1998 / 15:20:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10745
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10747
_File_canRead0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10748
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10750
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10751
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10752
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10753
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10755
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10756
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10757
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10758
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10759
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10760
	(f := path asFilename) isReadable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10761
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10762
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10763
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10764
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10766
    "Created: / 4.1.1998 / 18:09:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10767
    "Modified: / 27.1.1999 / 18:57:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10768
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10769
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10770
_File_canWrite0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10771
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10773
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10774
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10775
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10776
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10777
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10778
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10779
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10780
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10781
	(f := path asFilename) isWritable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10782
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10783
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10784
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10785
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10787
    "Created: / 4.2.1998 / 00:19:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10788
    "Modified: / 27.1.1999 / 18:57:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10789
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10790
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10791
_File_canonPath:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10792
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10793
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10794
    |jPath path realPath|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10795
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10796
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10797
    jPath isNil ifTrue:[^ jPath].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10799
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10800
    realPath := path asFilename pathName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10801
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10802
    ^ Java as_String:realPath
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10803
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10804
    "Created: / 27.1.1998 / 18:35:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10805
    "Modified: / 27.1.1998 / 21:36:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10806
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10807
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10808
_File_delete0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10809
    "/ boolean delete0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10810
    |oldFile oldPath oldF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10812
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10813
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10814
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10816
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10817
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10818
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10819
    oldF exists ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10820
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10821
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10823
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Delete of ''' , oldPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10824
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10825
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10826
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10827
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10828
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10829
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10830
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10831
	oldF delete.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10832
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10833
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10834
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10836
    "Modified: / 30.12.1998 / 20:15:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10837
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10839
_File_exists0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10840
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10842
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10843
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10844
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10845
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10846
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10847
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10848
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10849
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10850
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10851
	    ^ 1 "TRUE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10852
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10853
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10854
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10856
    "Created: / 5.1.1998 / 02:07:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10857
    "Modified: / 27.1.1999 / 18:57:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10858
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10859
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10860
_File_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10861
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10862
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10863
    "Created: / 27.1.1998 / 18:25:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10864
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10865
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10866
_File_isAbsolute:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10867
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10869
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10870
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10871
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10872
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10873
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10874
	(f := path asFilename) isAbsolute ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10875
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10876
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10877
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10878
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10879
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10880
    "Created: / 11.1.1998 / 09:54:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10881
    "Modified: / 20.10.1998 / 20:59:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10882
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10883
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10884
_File_isDirectory0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10885
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10886
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10887
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10888
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10889
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10890
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10891
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10892
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10893
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10894
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10895
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10896
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10897
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10898
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10899
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10901
    "Created: / 7.1.1998 / 10:31:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10902
    "Modified: / 27.1.1999 / 18:58:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10903
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10905
_File_isFile0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10906
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10908
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10909
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10910
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10911
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10912
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10913
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10914
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10915
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10916
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10917
	    f isDirectory ifFalse:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10918
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10919
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10920
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10922
    "Created: / 11.1.1998 / 11:40:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10923
    "Modified: / 27.1.1999 / 18:58:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10924
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10926
_File_lastModified0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10927
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10929
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10930
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10931
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10932
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10933
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10934
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10935
	    ^ f modificationTime getMilliseconds.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10936
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10937
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10938
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10940
    "Created: / 4.2.1998 / 16:50:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10941
    "Modified: / 20.10.1998 / 21:00:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10942
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10944
_File_length0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10945
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10947
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10948
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10949
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10950
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10951
	    thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10952
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10953
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10954
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10955
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10956
	    ^ f fileSize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10957
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10958
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10959
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10960
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10961
    "Created: / 7.1.1998 / 12:18:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10962
    "Modified: / 27.1.1999 / 18:57:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10963
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10965
_File_list0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10966
    |file path f files|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10968
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10969
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10970
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10971
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10972
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10973
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10974
	    f isDirectory ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10975
		files := f directoryContents asArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10976
		files := files collect:[:nm | Java as_String:nm].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10977
		^ files
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10978
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10979
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10980
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10981
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10982
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10983
    "Created: / 14.1.1998 / 21:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10984
    "Modified: / 20.10.1998 / 21:00:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10985
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10986
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10987
_File_mkdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10988
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10989
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10990
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10991
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10992
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10993
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10994
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10995
	f := path asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10996
	(f exists and:[f isDirectory]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10997
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10998
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11000
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11001
	    (self confirm:('JAVA Security check\\Create directory ''' , path , '''.\Grant permission ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11002
	    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11003
		^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11004
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11005
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11006
	OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11007
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11008
	] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11009
	    f makeDirectory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11010
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11011
	f  exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11012
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11013
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11014
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11015
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11017
    "Created: / 4.2.1998 / 00:19:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11018
    "Modified: / 4.12.1998 / 14:04:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11019
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11021
_File_renameTo0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11022
    "/ void renameTo0 (java.io.File)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11023
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11024
    |oldFile newFile oldPath newPath oldF newF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11026
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11027
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11028
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11030
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11031
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11032
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11033
    newFile := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11034
    newPath := newFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11035
    newPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11036
    newPath := Java as_ST_String:newPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11038
    newF := newPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11040
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Rename of ''' , oldPath , ''' to ''' , newPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11041
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11042
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11043
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11044
    oldF directory pathName ~= newF directory pathName ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11045
	(self checkWritePermissionOfDirectory:newF directory message:('JAVA Security check\\Rename of ''' , oldPath , ''' to ''' , newPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11046
	ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11047
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11048
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11049
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11051
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11052
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11053
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11054
	oldF renameTo:newF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11055
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11056
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11057
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11059
    "Modified: / 3.12.1998 / 21:01:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11060
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11062
_File_rmdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11063
    "/ boolean rmdir0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11064
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11065
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11066
    "Modified: / 12.11.1998 / 19:01:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11067
    "Created: / 12.11.1998 / 19:03:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11068
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11070
_Float_floatToIntBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11071
    |f i|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11073
    f := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11075
    UninterpretedBytes isBigEndian ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11076
	i := f basicAt:4.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11077
	i := i bitOr:((f basicAt:3) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11078
	i := i bitOr:((f basicAt:2) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11079
	i := i bitOr:((f basicAt:1) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11080
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11081
	i := f basicAt:1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11082
	i := i bitOr:((f basicAt:2) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11083
	i := i bitOr:((f basicAt:3) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11084
	i := i bitOr:((f basicAt:4) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11085
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11087
    ^ i.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11089
    "Created: / 4.1.1998 / 01:25:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11090
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11091
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11092
_FontDescriptor_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11093
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11094
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11095
    "Created: / 28.1.1998 / 22:30:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11096
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11097
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11098
_Font_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11099
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11100
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11101
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11102
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11103
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11104
_GifImageDecoder_parseImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11105
    |decoder width height bool1 depth subHdrBytes dstBytes i1 i2 colorModel
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11106
     stream byte compressedData compressedSize index count data
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11107
     leftOffs topOffs codeLen flags pixelStore clrModel t buffSize
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11108
     countGot countGot2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11110
    decoder := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11111
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11112
    i1 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11113
    i2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11114
    width := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11115
    height := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11116
    bool1 := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11117
    depth := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11118
    subHdrBytes := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11119
    dstBytes := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11120
    colorModel := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11122
    leftOffs := subHdrBytes wordAt:1 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11123
    topOffs := subHdrBytes wordAt:3 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11124
    width := subHdrBytes wordAt:5 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11125
    height := subHdrBytes wordAt:7 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11126
    flags := subHdrBytes at:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11127
    codeLen := subHdrBytes at:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11129
    stream := decoder instVarNamed:'input'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11130
    pixelStore := decoder instVarNamed:'store'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11131
    pixelStore isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11132
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11133
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11135
    buffSize := (width * height // 2) max:4096.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11136
    compressedData := ByteArray uninitializedNew:buffSize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11137
    "get compressed data"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11138
    index := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11139
    count := stream perform:#'read()I'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11141
    [count notNil and:[count > 0]] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11142
	(index + count) > buffSize ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11143
	    t := ByteArray uninitializedNew:(buffSize * 2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11144
	    t replaceFrom:1 to:buffSize with:compressedData startingAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11145
	    compressedData := t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11146
	    buffSize := buffSize * 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11147
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11148
	[count ~~ 0] whileTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11149
	    countGot := stream
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11150
			perform:#'read([BII)I'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11151
			with:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11152
			with:index-1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11153
			with:count.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11155
	    countGot > 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11156
		count := count - countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11157
		index := index + countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11158
	    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11159
		count := -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11160
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11161
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11163
	count >= 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11164
	    count := stream perform:#read.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11165
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11166
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11167
    compressedSize := index - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11169
    data := pixelStore perform:#'allocateLines(I)Ljava/lang/Object;' with:height.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11170
    (data isMemberOf:ByteArray) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11171
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11172
	^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11173
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11174
"/    'GIFReader: decompressing ...' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11175
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11176
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11177
    GIFReader
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11178
	decompressGIFFrom:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11179
	count:compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11180
	into:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11181
	startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11182
	codeLen:(codeLen + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11184
    clrModel := pixelStore instVarNamed:'colormodel'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11185
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11186
    pixelStore
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11187
	perform:#'setPixels(IIII[BII)Z'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11188
	withArguments:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11189
	    (Array
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11190
		with:0        "/ x
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11191
		with:0        "/ y
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11192
		with:width    "/ w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11193
		with:height   "/ h
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11194
		with:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11195
		with:0        "/ offs
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11196
		with:width).   "/ scanSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11198
    pixelStore  perform:#'imageComplete()V'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11199
"/        perform:#'imageComplete(I)V'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11200
"/        with:((Java at:'java.awt.image.ImageConsumer') instVarNamed:'STATICIMAGEDONE').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11201
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11202
"/ self internalError:'breakPoint'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11203
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11204
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11205
    "Modified: / 10.4.1998 / 14:31:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11206
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11207
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11208
_ImageRepresentation_disposeImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11209
    |imgRep img|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11210
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11211
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11213
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11214
    (img notNil and:[img ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11215
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11216
	    ImageStretchCache removeKey:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11217
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11218
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11219
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11220
    imgRep instVarNamed:'pData' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11221
"/    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11222
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11223
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11224
    "Modified: / 17.1.1998 / 13:26:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11225
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11227
_ImageRepresentation_finish:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11228
    |imgRep bool|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11229
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11230
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11231
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11232
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11233
"/    'JAVA: ImageRepresentation_finish ignored for now' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11234
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11235
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11237
    "Created: / 8.1.1998 / 00:11:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11238
    "Modified: / 6.2.1998 / 02:12:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11239
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11241
_ImageRepresentation_imageDraw:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11242
    |imgRep x y img deviceImage jGraphics gc clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11244
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11245
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11246
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11247
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11248
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11249
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11250
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11251
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11252
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11254
    x := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11255
    y := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11256
    clr := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11258
    deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11259
    deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11260
	imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11261
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11262
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11263
    deviceImage displayOn:gc x:x y:y.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11264
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11266
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11267
    "Modified: / 25.11.1998 / 15:36:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11268
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11270
_ImageRepresentation_imageStretch:nativeContext
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11271
    |imgRep x1 y1 x2 y2 srcX1 srcY1 w h
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11272
     img deviceImage jGraphics gc clr stretchWidth stretchHeight|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11273
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11274
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11275
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11276
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11277
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11278
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11279
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11281
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11282
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11283
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11285
    x1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11286
    y1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11287
    x2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11288
    y2:= nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11289
    srcX1 := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11290
    srcY1 := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11291
    w := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11292
    h := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11293
    clr := nativeContext argAt:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11295
    (srcX1 ~~ 0 or:[srcY1 ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11296
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11297
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11298
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11299
    (w ~~ img width or:[h ~~ img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11300
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11301
	^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11302
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11303
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11304
    "/ TODO: remember magnified images somewhere for a while,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11305
    "/ to avoid repeated action ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11306
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11307
    stretchWidth := (x2-x1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11308
    stretchHeight := (y2-y1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11310
    (stretchWidth == img width
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11311
    and:[stretchHeight == img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11312
	deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11313
	deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11314
	    imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11315
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11316
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11317
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11318
	    deviceImage := ImageStretchCache at:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11319
	].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11320
	(deviceImage isNil
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11321
	or:[deviceImage width ~~ stretchWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11322
	or:[deviceImage height ~~ stretchHeight]]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11323
	    deviceImage := (img magnifiedTo:stretchWidth@stretchHeight) onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11324
	    ImageStretchCache isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11325
		ImageStretchCache := WeakIdentityDictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11326
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11327
	    ImageStretchCache at:img put:deviceImage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11328
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11329
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11330
    deviceImage displayOn:gc x:x1 y:y1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11331
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11332
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11333
    "Modified: / 15.1.1998 / 13:14:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11334
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11335
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11336
_ImageRepresentation_offscreenInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11337
    |imgRep jclr w h form screenDevice|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11339
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11340
    jclr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11342
    w := imgRep instVarNamed:'width'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11343
    h := imgRep instVarNamed:'height'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11345
    screenDevice := Screen current.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11346
    form := Form width:w height:h depth:(screenDevice depth) on:screenDevice.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11348
    imgRep instVarNamed:'pData' put:form.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11349
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11350
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11351
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11352
    "Modified: / 17.1.1998 / 12:36:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11353
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11354
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11355
_ImageRepresentation_setBytePixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11356
    |imgRep x y w h clrModel bytes offs i2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11357
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11358
     scanLineWidth nBytes srcIdx dstIdx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11359
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11360
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11361
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11362
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11363
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11364
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11365
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11366
    bytes := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11367
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11368
    scanLineWidth := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11370
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11371
    (clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11372
	rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11373
	cmap := Array new:rgbMap size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11374
	rgbMap
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11375
	    keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11376
		cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11377
	    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11378
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11379
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11380
    opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11381
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11382
	transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11383
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11385
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11386
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11387
"/        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11388
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11389
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11390
    (offs ~~ 0 or:[scanLineWidth ~~ w]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11391
	nBytes := ByteArray new:w*h.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11392
	srcIdx := offs+1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11393
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11394
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11395
	    nBytes replaceFrom:dstIdx to:(dstIdx+w-1) with:bytes startingAt:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11396
	    srcIdx := srcIdx + scanLineWidth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11397
	    dstIdx := dstIdx + w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11398
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11399
	bytes := nBytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11400
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11401
    img := Image width:w height:h depth:depth fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11402
    cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11403
	img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11404
	img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11405
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11406
    opaque ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11407
	img mask:(ImageReader
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11408
		    buildMaskFromColor:transparentColorIndex
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11409
		    for:bytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11410
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11411
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11412
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11413
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11414
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11415
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11416
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11417
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11418
    "Modified: / 21.10.1998 / 00:35:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11419
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11420
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11421
_ImageRepresentation_setIntPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11422
    |imgRep x y w h clrModel ints offs scanLineWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11423
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11424
     bytes srcIdx dstIdx val red green blue
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11425
     redMask greenMask blueMask redShift greenShift blueShift|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11427
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11428
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11429
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11430
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11431
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11432
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11433
    ints := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11434
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11435
    scanLineWidth := nativeContext argAt:8.  "/ scanLineWidth ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11436
    opaque := false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11437
offs ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11438
 self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11439
].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11440
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11441
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11442
    clrModel class == (Java at:'java.awt.image.DirectColorModel') ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11443
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11444
	(clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11445
	    rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11446
	    cmap := Array new:rgbMap size.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11447
	    rgbMap
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11448
		keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11449
		    cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11450
		].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11451
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11452
	opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11453
	opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11454
	    transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11455
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11456
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11458
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11459
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11460
"/        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11461
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11462
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11463
    depth == 32 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11464
	"/ temporary kludge - ony use 24 bits/pixel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11465
	bytes := ByteArray new:w*h*3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11466
	srcIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11467
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11468
	redMask := clrModel instVarNamed:'red_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11469
	greenMask := clrModel instVarNamed:'green_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11470
	blueMask := clrModel instVarNamed:'blue_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11471
	redShift := (clrModel instVarNamed:'red_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11472
	greenShift := (clrModel instVarNamed:'green_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11473
	blueShift := (clrModel instVarNamed:'blue_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11475
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11476
	    1 to:w do:[:x |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11477
		val := ints at:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11478
		red := (val bitAnd:redMask) bitShift:redShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11479
		green := (val bitAnd:greenMask) bitShift:greenShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11480
		blue := (val bitAnd:blueMask) bitShift:blueShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11481
		bytes at:dstIdx put:red.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11482
		bytes at:dstIdx+1 put:green.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11483
		bytes at:dstIdx+2 put:blue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11484
		dstIdx := dstIdx + 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11485
		srcIdx := srcIdx + 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11486
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11487
	    srcIdx := srcIdx + (scanLineWidth - w).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11488
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11489
	img := Depth24Image width:w height:h depth:24 fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11490
	img photometric:#rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11491
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11492
	scanLineWidth ~~ w ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11493
	    self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11494
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11495
	img := Image width:w height:h depth:depth fromArray:ints.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11496
	cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11497
	    img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11498
	    img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11499
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11500
	    img photometric:#rgb
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11501
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11502
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11503
    opaque ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11504
	img mask:(ImageReader
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11505
		    buildMaskFromColor:transparentColorIndex
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11506
		    for:ints
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11507
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11508
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11509
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11511
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11512
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11514
    "Created: / 1.2.1998 / 17:38:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11515
    "Modified: / 21.10.1998 / 00:35:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11516
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11517
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11518
_InetAddressImpl_getHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11519
    "/ java.lang.String getHostByAddr (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11520
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11522
    "Created: / 12.11.1998 / 19:08:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11523
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11524
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11525
_InetAddressImpl_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11526
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11527
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11528
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11529
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11530
    "Created: / 5.1.1998 / 02:05:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11531
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11533
_InetAddressImpl_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11534
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11536
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11538
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11539
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11540
    ^ (Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11541
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11542
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11543
    "Created: / 5.1.1998 / 02:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11544
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11546
_InetAddressImpl_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11547
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11549
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11550
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11551
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11552
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11553
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11554
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11555
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11556
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11557
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11558
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11559
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11560
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11561
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11562
    "Created: / 7.1.1998 / 18:51:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11563
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11565
_InetAddressImpl_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11566
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11568
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11570
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11571
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11573
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11574
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11575
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11576
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11577
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11578
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11579
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11580
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11581
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11582
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11584
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11585
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11586
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11588
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11590
    "Created: / 5.1.1998 / 02:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11591
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11592
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11594
_InetAddress_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11595
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11596
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11598
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11599
    "Created: / 17.11.1998 / 23:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11600
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11601
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11602
_InetAddress_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11603
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11605
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11606
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11607
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11609
    ^ Java as_String:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11610
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11611
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11612
    "Created: / 17.11.1998 / 23:54:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11613
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11615
_InetAddress_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11616
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11617
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11618
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11619
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11620
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11621
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11622
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11623
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11624
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11625
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11626
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11627
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11628
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11630
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11631
    "Created: / 17.11.1998 / 23:56:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11632
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11633
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11634
_InetAddress_lookupHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11635
    "java.lang.Object[] lookupHostByAddr (int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11636
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11637
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11639
    "Created: / 27.1.2000 / 02:59:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11640
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11642
_InetAddress_lookupHostByName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11643
    "java.lang.Object[] lookupHostByName (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11644
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11645
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11647
    "Modified: / 27.1.2000 / 02:58:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11648
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11649
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11650
_InetAddress_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11651
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11652
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11653
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11654
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11655
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11656
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11657
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11658
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11659
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11660
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11661
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11662
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11663
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11664
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11665
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11666
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11667
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11668
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11669
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11670
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11671
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11672
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11673
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11675
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11676
    "Created: / 17.11.1998 / 23:54:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11677
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11678
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11679
_Inflater_end0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11680
    "/ void end0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11681
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11682
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11683
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11684
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11685
    "Created: / 27.1.2000 / 03:11:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11686
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11687
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11688
_Inflater_getAdler0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11689
    "/ int getAdler0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11691
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11693
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11694
    "Created: / 27.1.2000 / 03:12:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11695
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11697
_Inflater_getTotalIn0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11698
    "/ int getTotalIn0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11699
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11700
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11701
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11702
    "Created: / 27.1.2000 / 03:10:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11703
    "Modified: / 27.1.2000 / 03:11:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11704
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11705
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11706
_Inflater_getTotalOut0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11707
    "/ int getTotalOut0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11708
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11709
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11710
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11711
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11712
    "Created: / 27.1.2000 / 03:12:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11713
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11715
_Inflater_inflate0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11716
    "/ int inflate0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11717
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11718
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11720
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11721
    "Created: / 27.1.2000 / 03:11:39 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11722
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11724
_Inflater_reset0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11725
    "/ void reset0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11726
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11727
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11728
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11729
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11730
    "Created: / 27.1.2000 / 03:11:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11731
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11732
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11733
_Inflater_setDictionary0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11734
    "/ void setDictionary0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11736
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11737
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11738
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11739
    "Created: / 27.1.2000 / 03:10:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11740
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11741
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11742
_InputThread_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11743
    self _WToolkit_eventLoop:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11744
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11745
    "Created: / 28.1.1998 / 22:34:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11746
    "Modified: / 28.1.1998 / 22:35:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11747
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11748
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11749
_Introspector_getMethodDescriptor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11750
    "java.lang.String getMethodDescriptor (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11752
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11753
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11754
    "Created: / 27.1.2000 / 02:47:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11755
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11756
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11757
_Introspector_getMethodParameterCount:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11758
    "int getMethodParameterCount (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11759
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11760
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11762
    "Created: / 27.1.2000 / 02:49:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11763
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11764
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11765
_Introspector_getPublicDeclaredMethods0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11766
    "java.lang.reflect.Method[] getPublicDeclaredMethods0 (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11768
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11769
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11770
    "Created: / 27.1.2000 / 02:48:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11771
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11773
_JPEGImageDecoder_readImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11774
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11775
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11776
    "Created: / 12.11.1998 / 18:53:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11777
    "Modified: / 12.11.1998 / 18:53:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11778
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11779
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11780
_MButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11781
    ^ self _WButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11782
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11783
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11784
_MCanvasPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11785
    |jCanvasPeer jFrame frame subView|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11787
    jCanvasPeer := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11788
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11789
    jFrame := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11790
    jFrame isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11791
	self halt:'no frame in canvasPeer create'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 11792
	self internalError:'no frame in canvasPeer create'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11793
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11794
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11795
    frame := jFrame instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11797
    subView := JavaView in:frame.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11798
    subView delegate:self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11799
    subView javaPeer:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11801
    self createdWindowsView:subView for:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11803
    WindowCreationTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11804
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11805
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11806
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11807
    "Modified: / 16.1.1998 / 13:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11808
    "Created: / 18.11.1998 / 00:14:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11809
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11810
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11811
_MComponentPeer_cacheInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11812
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11813
    "Created: / 28.1.1998 / 22:22:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11814
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11815
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11816
_MComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11817
    ^ self _WComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11818
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11819
    "Created: / 18.11.1998 / 00:21:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11820
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11821
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11822
_MComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11823
    ^ self _WComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11824
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11825
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11826
_MComponentPeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11827
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11828
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11829
    "Created: / 18.11.1998 / 00:15:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11830
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11831
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11832
_MComponentPeer_pInitialize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11833
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11834
    "Created: / 28.1.1998 / 22:27:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11835
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11836
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11837
_MComponentPeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11838
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11839
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11840
    "Created: / 18.11.1998 / 00:18:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11841
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11842
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11843
_MComponentPeer_pSetBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11844
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11845
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11846
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11847
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11848
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11849
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11850
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11851
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11852
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11853
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11854
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11855
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11856
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11857
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11858
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11859
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11860
_MComponentPeer_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11861
    |view jFont stFont name style size|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11862
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11863
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11864
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11865
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11866
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11867
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11868
        name := jFont instVarNamed:'name'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11869
        style := jFont instVarNamed:'style'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11870
        size := jFont instVarNamed:'size'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11871
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11872
        stFont := self replacementFontFor:(Java as_ST_String:name) style:style size:size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11873
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11874
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11875
    view font:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11876
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11877
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11878
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11879
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11880
_MComponentPeer_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11881
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11882
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11883
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11884
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11885
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11887
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11888
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11889
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11891
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11892
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11893
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11894
    view foregroundColor:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11895
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11896
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11897
_MComponentPeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11898
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11899
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11900
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11901
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11902
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11903
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11904
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11905
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11906
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11908
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11909
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11910
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11911
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11912
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11914
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11915
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11916
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11917
    "Created: / 18.11.1998 / 00:21:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11918
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11919
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11920
_MComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11921
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11923
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11924
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11925
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11926
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11927
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11928
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11930
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11931
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11932
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11933
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11934
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11935
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11936
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11937
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11939
    "Created: / 17.11.1998 / 23:49:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11940
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11941
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11942
_MComponentPeer_setCursor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11943
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11944
    "Created: / 28.1.1998 / 22:27:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11945
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11946
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11947
_MComponentPeer_setFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11948
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11949
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11950
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11951
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11952
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11953
    "Modified: / 25.1.1998 / 01:22:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11954
    "Created: / 17.11.1998 / 23:43:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11955
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11957
_MComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11958
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11960
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11962
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11963
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11964
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11965
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11966
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11967
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11968
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11969
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11970
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11971
    "Created: / 17.11.1998 / 23:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11972
    "Modified: / 17.11.1998 / 23:57:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11973
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11974
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11975
_MFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11976
    ^ self _WFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11977
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11978
    "Created: / 28.1.1998 / 22:25:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11979
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11981
_MFramePeer_getWindowBackgroundColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11982
    ^ View defaultViewBackgroundColor rgbValue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11984
    "Created: / 17.11.1998 / 23:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11985
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11987
_MFramePeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11988
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11990
    "Created: / 28.1.1998 / 22:27:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11991
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11992
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11993
_MFramePeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11994
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11995
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11996
    "Created: / 28.1.1998 / 22:28:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11997
    "Modified: / 28.1.1998 / 22:29:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11998
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11999
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12000
_MFramePeer_pSetTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12001
    self _WWindowPeer__setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12003
    "Created: / 28.1.1998 / 22:30:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12004
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12006
_MFramePeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12007
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12008
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12009
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12011
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12012
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12013
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12014
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12015
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12016
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12017
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12018
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12019
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12020
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12021
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12022
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12023
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12024
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12025
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12026
    "Created: / 18.11.1998 / 00:19:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12027
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12028
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12029
_MFramePeer_setInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12030
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12031
    "Created: / 17.11.1998 / 23:55:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12032
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12034
_MFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12035
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12036
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12037
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12039
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12040
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12041
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12042
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12043
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12044
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12045
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12046
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12047
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12048
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12049
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12050
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12051
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12052
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12053
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12054
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12055
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12056
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12057
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12058
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12059
    "Created: / 17.11.1998 / 23:51:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12060
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12061
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12062
_MToolkit_callbackLoop: nativeContext
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12063
    | toolKit |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12064
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12065
    ^ self.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12066
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12067
        self halt: 'monitors has changer, update me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12068
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12069
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12070
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12071
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12072
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12073
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12074
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12075
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12076
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12077
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12078
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12079
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12080
    "Created: / 17-11-1998 / 23:58:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12081
    "Modified: / 08-01-1999 / 17:08:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12082
    "Modified: / 22-11-2011 / 13:25:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12083
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12084
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12085
_MToolkit_eventLoop: nativeContext
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12086
    | toolKit |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12087
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12088
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12089
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12090
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12091
    self halt: 'monitors has changer, update me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12092
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12093
    self halt.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12094
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12095
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12096
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12097
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12098
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12099
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12100
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12101
    "Created: / 17-11-1998 / 23:04:29 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12102
    "Modified: / 08-01-1999 / 17:08:21 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 12103
    "Modified: / 22-11-2011 / 13:24:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12104
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12105
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12106
_MToolkit_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12108
    "Created: / 28.1.1998 / 22:21:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12109
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12110
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12111
_MToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12112
    ^ self _WToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12113
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12115
_MToolkit_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12117
    "Created: / 28.1.1998 / 22:22:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12118
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12119
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12120
_Math_IEEEremainder:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12121
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12122
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12123
    "Created: / 12.11.1998 / 18:52:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12124
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12126
_Math_acos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12127
    "arc cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12129
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12131
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12132
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12133
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12134
"/            'JAVAVM [info]: missing double flag in Math>>acos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12135
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12136
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12137
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12138
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12139
    ^ dVal arcCos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12141
    "Created: / 7.5.1998 / 00:34:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12142
    "Modified: / 11.11.1998 / 15:08:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12143
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12145
_Math_asin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12146
    "arc sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12148
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12150
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12151
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12152
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12153
"/            'JAVAVM [info]: missing double flag in Math>>asin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12154
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12155
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12156
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12157
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12158
    ^ dVal arcSin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12160
    "Created: / 7.5.1998 / 00:34:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12161
    "Modified: / 11.11.1998 / 15:08:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12162
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12164
_Math_atan2:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12165
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12166
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12167
    "Created: / 12.11.1998 / 18:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12168
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12170
_Math_atan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12171
    "arc tangens"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12172
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12173
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12175
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12176
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12177
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12178
"/            'JAVAVM [info]: missing double flag in Math>>atan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12179
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12180
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12181
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12182
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12183
    ^ dVal arcTan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12185
    "Created: / 6.2.1998 / 01:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12186
    "Modified: / 11.11.1998 / 15:08:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12187
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12189
_Math_ceil:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12190
    "ceiling"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12192
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12193
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12194
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12195
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12196
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12197
"/            'JAVAVM [info]: missing double flag in Math>>ceil' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12198
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12199
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12200
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12201
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12202
    ^ dVal ceilingAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12204
    "Created: / 7.1.1998 / 15:43:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12205
    "Modified: / 11.11.1998 / 15:08:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12206
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12208
_Math_cos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12209
    "cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12211
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12213
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12214
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12215
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12216
"/            'JAVAVM [info]: missing double flag in Math>>cos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12217
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12218
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12219
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12220
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12221
    ^ dVal cos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12223
    "Created: / 7.1.1998 / 15:41:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12224
    "Modified: / 11.11.1998 / 15:07:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12225
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12227
_Math_exp:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12228
    "exponential"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12229
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12230
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12232
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12233
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12234
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12235
"/            'JAVAVM [info]: missing double flag in Math>>exp' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12236
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12237
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12238
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12239
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12240
    ^ dVal exp
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12242
    "Created: / 7.5.1998 / 00:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12243
    "Modified: / 11.11.1998 / 15:07:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12244
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12246
_Math_floor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12247
    "floor"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12249
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12251
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12252
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12253
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12254
"/            'JAVAVM [info]: missing double flag in Math>>floor' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12255
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12256
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12257
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12258
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12259
    ^ dVal floorAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12261
    "Created: / 7.1.1998 / 19:09:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12262
    "Modified: / 11.11.1998 / 15:07:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12265
_Math_log:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12266
    "natural logarithm"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12268
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12270
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12271
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12272
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12273
"/            'JAVAVM [info]: missing double flag in Math>>log' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12274
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12275
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12276
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12277
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12278
    ^ dVal ln
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12280
    "Created: / 7.1.1998 / 15:42:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12281
    "Modified: / 30.12.1998 / 17:41:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12282
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12284
_Math_pow:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12285
    "power"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12287
    |dVal1 dVal2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12289
    dVal1 := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12290
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12291
"/        dVal1 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12292
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12293
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12294
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12295
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12296
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12297
    dVal2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12298
"/    (nativeContext argAt:4) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12299
"/        dVal2 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12300
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12301
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12302
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12303
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12304
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12305
    ^ dVal1 raisedTo:dVal2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12307
    "Created: / 7.1.1998 / 15:44:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12308
    "Modified: / 11.11.1998 / 15:07:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12309
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12311
_Math_rint:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12312
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12314
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12315
    ^ dVal rounded asFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12316
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12318
_Math_sin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12319
    "sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12321
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12323
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12324
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12325
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12326
"/            'JAVAVM [info]: missing double flag in Math>>sin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12327
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12328
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12329
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12330
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12331
    ^ dVal sin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12333
    "Created: / 7.1.1998 / 15:41:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12334
    "Modified: / 11.11.1998 / 15:07:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12335
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12336
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12337
_Math_sqrt:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12338
    "square root"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12339
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12340
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12342
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12343
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12344
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12345
"/            'JAVAVM [info]: missing double flag in Math>>sqrt' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12346
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12347
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12348
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12349
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12351
    "/ how about domain errors ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12352
    dVal < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12353
	^ 0.0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12354
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12355
    ^ dVal sqrt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12357
    "Created: / 7.1.1998 / 15:42:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12358
    "Modified: / 29.12.1998 / 13:22:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12359
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12361
_Math_tan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12362
    "tangent"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12363
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12364
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12366
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12367
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12368
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12369
"/            'JAVAVM [info]: missing double flag in Math>>tan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12370
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12371
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12372
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12373
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12374
    ^ dVal tan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12376
    "Created: / 7.5.1998 / 00:34:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12377
    "Modified: / 11.11.1998 / 15:07:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12379
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12380
_MemoryAdvice_register0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12381
    "private native void register0()"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12382
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12383
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12384
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12385
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12386
_Method_getModifiers:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12387
    |jMethod mthd retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12388
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12389
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12391
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12392
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12393
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12394
	^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12395
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12396
    ^ mthd accessFlags
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12397
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12398
    "Modified: / 9.4.1998 / 17:50:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12399
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12400
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12401
_MozillaAppletContext_pMochaOnLoad:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12402
    |id|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12404
    id := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12405
"/ 'JAVA: MozillaAppletContext_pMochaOnLoad: ' print. id printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12406
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12407
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12408
    "Created: / 6.1.1998 / 20:37:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12409
    "Modified: / 6.2.1998 / 02:13:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12410
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12412
_MozillaAppletContext_pShowDocument:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12413
    |jAppletContext s1 s2 s3 js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12414
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12415
    jAppletContext := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12416
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12417
    s1 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12418
    js := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12419
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12420
    js := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12421
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12422
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12423
    "/ somehow pass it to the html browser ....
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12424
Transcript show:'pShowDocument: '; show:s1; show:' / ';
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12425
	   show:s2; show:' / '; showCR:s3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12427
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12429
    "Created: / 29.3.1998 / 15:53:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12430
    "Modified: / 29.12.1998 / 13:32:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12431
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12432
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12433
_MozillaAppletContext_pShowStatus:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12434
    |s js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12435
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12436
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12437
    js isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12438
	s := ''
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12439
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12440
	s := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12441
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12443
    self activityNotification:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12444
"/ Transcript showCR:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12445
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12447
    "Created: / 6.1.1998 / 18:31:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12448
    "Modified: / 22.10.1998 / 01:17:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12449
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12451
_MozillaAppletContext_setConsoleState0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12452
    "/ void setConsoleState0 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12453
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12454
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12455
    "Created: / 12.11.1998 / 19:23:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12456
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12458
_ObjectInputStream_allocateNewArray:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12459
    "/ java.lang.Object allocateNewArray (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12460
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12462
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12463
    "Created: / 12.11.1998 / 19:02:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12464
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12466
_ObjectInputStream_allocateNewObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12467
    "/ java.lang.Object allocateNewObject (java.lang.Class java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12468
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12470
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12471
    "Created: / 12.11.1998 / 19:02:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12472
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12473
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12474
_ObjectInputStream_inputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12475
    "/ void inputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12476
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12477
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12478
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12479
    "Created: / 12.11.1998 / 19:02:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12480
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12481
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12482
_ObjectInputStream_invokeDefaultReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12483
    "/ void invokeDefaultReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12484
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12485
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12486
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12487
    "Created: / 27.1.2000 / 03:00:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12488
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12489
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12490
_ObjectInputStream_invokeObjectReader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12491
    "/ boolean invokeObjectReader (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12492
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12493
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12494
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12495
    "Created: / 12.11.1998 / 19:03:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12496
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12497
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12498
_ObjectInputStream_invokeReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12499
    "/ void invokeReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12501
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12503
    "Created: / 27.1.2000 / 03:01:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12504
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12505
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12506
_ObjectInputStream_loadClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12507
    "/ java.lang.Class loadClass0 (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12508
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12509
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12510
    "Created: / 12.11.1998 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12511
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12512
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12514
_ObjectOutputStream_invokeDefaultWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12515
    "/ void invokeDefaultWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12516
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12517
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12519
    "Created: / 27.1.2000 / 03:01:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12520
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12521
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12522
_ObjectOutputStream_invokeObjectWriter:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12523
    "/ boolean invokeObjectWriter (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12524
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12526
    "Created: / 12.11.1998 / 19:00:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12527
    "Modified: / 12.11.1998 / 19:01:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12528
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12529
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12530
_ObjectOutputStream_invokeWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12531
    "/ void invokeWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12532
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12533
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12534
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12535
    "Created: / 27.1.2000 / 03:01:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12536
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12538
_ObjectOutputStream_outputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12539
    "/ void outputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12540
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12541
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12542
    "Created: / 12.11.1998 / 19:00:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12543
    "Modified: / 12.11.1998 / 19:01:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12544
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12546
_ObjectStreamClass_doMismatchedRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12547
    "/ void doMismatchedRead (java.io.ObjectInputStream java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12549
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12550
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12551
    "Created: / 27.1.2000 / 02:50:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12552
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12553
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12554
_ObjectStreamClass_findObjectMethod0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12555
    "/ boolean findObjectMethod0 (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12556
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12557
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12559
    "Created: / 27.1.2000 / 02:51:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12560
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12562
_ObjectStreamClass_getClassAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12563
    "/ int getClassAccess (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12564
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12566
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12567
    "Created: / 12.11.1998 / 19:04:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12568
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12570
_ObjectStreamClass_getClassDefinedUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12571
    "/ long getClassDefinedUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12573
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12574
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12575
    "Created: / 27.1.2000 / 02:51:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12576
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12577
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12578
_ObjectStreamClass_getFieldAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12579
    "/ int getFieldAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12580
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12582
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12583
    "Created: / 12.11.1998 / 19:05:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12584
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12585
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12586
_ObjectStreamClass_getFieldSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12587
    "/ java.lang.String[] getFieldSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12588
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12590
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12591
    "Created: / 12.11.1998 / 19:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12592
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12594
_ObjectStreamClass_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12595
    "/ java.io.ObjectStreamField[] getFields0 (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12596
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12598
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12599
    "Created: / 12.11.1998 / 19:05:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12600
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12601
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12602
_ObjectStreamClass_getMethodAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12603
    "/ int getMethodAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12604
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12605
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12606
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12607
    "Created: / 12.11.1998 / 19:04:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12608
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12609
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12610
_ObjectStreamClass_getMethodSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12611
    "/ java.lang.String[] getMethodSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12612
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12613
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12614
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12615
    "Created: / 12.11.1998 / 19:04:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12616
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12617
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12618
_ObjectStreamClass_getSerialVersionUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12619
    "/ long getSerialVersionUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12620
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12621
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12622
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12623
    "Created: / 12.11.1998 / 19:05:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12624
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12625
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12626
_ObjectStreamClass_hasWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12627
    "/ boolean hasWriteObject (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12628
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12630
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12631
    "Created: / 12.11.1998 / 19:05:53 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12632
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12633
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12634
_OffScreenImageSource_sendPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12635
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12636
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12637
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12638
    "Modified: / 16.1.1998 / 18:22:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12639
    "Created: / 17.1.1998 / 12:36:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12640
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12642
_PackedColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12643
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12644
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12645
    "Created: / 28.1.1998 / 22:19:35 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12648
_PlainDatagramSocketImpl_bind:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12649
    |jsock jaddr port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12651
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12652
    port := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12653
    jaddr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12655
    hostName := jaddr instVarNamed:'hostName'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12656
    hostName isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12657
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12658
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12659
	hostName := Java as_ST_String:hostName
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12660
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12662
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12663
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12664
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12665
	    ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12666
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12668
	ok := sock bindTo:port address:nil "hostName".
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12669
	ok ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12670
	    err := OperatingSystem lastErrorString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12671
	    Transcript showCR:'sock err: ' , err printString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12672
	    self throwIOExceptionWithMessage:'bind failed'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12673
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12674
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12676
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12677
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12678
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12680
_PlainDatagramSocketImpl_join:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12681
    "/ native void join (InetAddress arg1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12683
    |jsock addr sock ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12685
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12686
    addr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12688
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12689
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12690
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12691
	    ('JAVA: socket join ' , addr printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12692
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12693
	self throwIOExceptionWithMessage:'unimplemented: join'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12694
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12695
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12696
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12698
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12699
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12702
_PlainDatagramSocketImpl_receive:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12703
    |jsock jdatagramPacket sock ok|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12705
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12706
    jdatagramPacket := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12708
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12709
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12710
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12711
	    ('JAVA: socket receive') infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12712
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12713
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12714
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12715
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12716
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12717
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12718
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12719
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12720
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12721
_PlainDatagramSocketImpl_socketGetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12722
    |jsock opt port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12724
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12725
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12727
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12728
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12729
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12730
	    ('JAVA: socket getOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12731
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12732
	self throwIOExceptionWithMessage:'unimplemented: getOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12733
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12734
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12735
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12736
    ^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12738
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12739
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12740
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12741
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12742
_PlainSocketImpl_socketAvailable:nativeContext
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12743
    |jSock sock n|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12744
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12745
    jSock := nativeContext receiver.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12746
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12747
    sock := self validateFile:jSock.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12748
    sock isNil ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12749
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12750
	^ self.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12751
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12752
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12753
    n := sock numAvailable.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12754
    ^ n
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12755
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12756
    "Created: / 4.2.1998 / 16:58:49 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12757
    "Modified: / 30.12.1998 / 20:10:08 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12758
!
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12759
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12760
_PlainSocketImpl_socketClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12761
    |jsock sock|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12763
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12765
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12766
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12767
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12768
	    'JAVA: close socket' infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12769
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12770
	sock close.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12771
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12773
    "Modified: / 21.8.1997 / 17:09:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12774
    "Created: / 25.1.1998 / 20:04:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12775
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12776
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12777
_PlatformFont_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12778
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12779
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12780
    "Created: / 28.1.1998 / 22:30:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12781
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12782
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12783
_PrintStream_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12784
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12785
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12786
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12788
    "Created: / 27.1.2000 / 03:00:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12789
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12790
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12791
_RandomAccessFile_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12792
    ^ self anyStream_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12793
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12794
    "Created: / 4.2.1998 / 13:26:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12795
    "Modified: / 4.2.1998 / 15:21:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12796
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12797
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12798
_Runtime_buildLibName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12799
    |jPath jFileName path fileName libName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12801
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12802
    jFileName := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12803
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12804
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12805
    fileName := Java as_ST_String:jFileName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12806
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12807
    path = '__builtIn__' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12808
	libName := path , '/' , fileName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12809
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12810
	libName := path , '/lib' , fileName , '.so'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12811
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12812
    ^ Java as_String:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12813
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12814
    "Modified: / 8.8.1997 / 12:05:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12815
    "Created: / 4.1.1998 / 19:07:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12816
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12817
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12818
_Runtime_execInternal: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12819
    "Run a unix-command; return a process object."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12820
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12821
    | cmdAndArgArray  envArray  cmd  jProcessClass  jProcess |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12822
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12823
    cmdAndArgArray := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12824
    envArray := nativeContext argAt: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12825
    cmd := cmdAndArgArray at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12826
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12827
        jProcessClass := self classForName: 'java.lang.UNIXProcess'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12828
    ] ifFalse: [ jProcessClass := Java classForName: 'java.lang.Win32Process'. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12829
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12830
"/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12831
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12832
    jProcessClass notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12833
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12834
        jProcess := jProcessClass newCleared.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12835
        jProcess
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12836
            perform: #'<init>([Ljava/lang/String;[Ljava/lang/String;)V'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12837
            with: cmdAndArgArray
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12838
            with: envArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12839
        ^ jProcess
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12840
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12841
    self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 12842
    self
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12843
        throwIOExceptionWithMessage: 'Process execution disabled/unimplemented'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12844
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12845
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12846
    "Created: / 15.1.1998 / 01:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12847
    "Modified: / 11.12.1998 / 13:09:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12848
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12849
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12850
_Runtime_initializeLinkerInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12851
    "init sharedLib linker, return searchPath as javaString"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12852
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12853
    |path|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12854
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12855
    "/ mhmh - what is done here ?
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12857
    path := ''.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12858
    LibPath do:[:comp | path size == 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12859
			    path := path , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12860
			] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12861
			    path := path , ':' , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12862
			]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12863
	       ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12864
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12865
    ^ Java as_String:path
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12866
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12867
    "Modified: / 7.8.1997 / 21:17:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12868
    "Created: / 4.1.1998 / 17:53:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12869
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12870
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12871
_Runtime_isInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12872
    "/ boolean isInputStreamLocalised (java.io.DataInputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12873
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12874
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12875
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12876
    "Created: / 27.1.2000 / 03:03:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12877
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12878
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12879
_Runtime_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12880
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12881
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12882
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12884
    "Created: / 27.1.2000 / 03:02:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12885
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12887
_Runtime_loadFileInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12888
    "load a sharedLib, return boolean 0 (false) if fail; 1 (true) if ok"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12889
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12890
    |ret|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12891
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12892
    ret := self _Runtime_loadFileInternalI:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12893
    ret < 0 ifTrue:[ ret := 0 ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12894
    ^ ret
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12895
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12896
    "Created: / 4.1.1998 / 19:10:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12897
    "Modified: / 4.1.1998 / 19:11:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12898
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12899
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12900
_Runtime_loadFileInternalI:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12901
    "1.1b3 change; load a sharedLib like 'loadFileInternal',
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12902
     but return integer:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12903
	-1   outOfMemory error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12904
	0    failed to load
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12905
	1    loaded or already loaded (i.e. ok)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12906
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12907
    |jLibName libName libHandle|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12908
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12909
    jLibName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12910
    libName := Java as_ST_String:jLibName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12911
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12912
    (SimulatedLibs includes:libName) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12913
"/        ('JAVA: builtIn libLoad simulated: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12914
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12915
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12916
    (LoadedLibs notNil and:[LoadedLibs includesKey:libName]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12917
"/        ('JAVA: already loaded: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12918
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12919
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12921
    libName asFilename exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12922
	('JAVA: no file to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12923
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12924
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12926
    (self confirm:'permission to load native library: ' , libName , ' ?') ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12927
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12928
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12930
    libHandle := ObjectFileLoader loadLibrary:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12931
    libHandle isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12932
	('JAVA: failed to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12933
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12934
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12935
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12936
    LoadedLibs isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12937
	LoadedLibs := Dictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12938
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12940
    LoadedLibs at:libName put:libHandle.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12941
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12943
    "Created: / 4.1.1998 / 19:10:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12944
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12945
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12946
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12947
_Runtime_runFinalization:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12948
    "/ void runFinalization ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12949
"/    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12950
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12951
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12952
    "Created: / 12.11.1998 / 18:59:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12953
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12954
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12955
_Runtime_runFinalizersOnExit0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12956
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12957
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12958
    |onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12960
    onOff := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12961
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12962
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12963
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12964
    "Created: / 15.10.1998 / 23:34:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12965
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12966
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12967
_Runtime_setInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12968
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12969
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12970
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12971
    "Modified: / 27.1.2000 / 03:02:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12972
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12974
_Runtime_setOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12975
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12976
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12977
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12978
    "Modified: / 27.1.2000 / 03:02:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12979
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12980
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12981
_Runtime_totalMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12982
    "free memory - Returns the total number of bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12984
    ^ ObjectMemory oldSpaceSize + ObjectMemory newSpaceSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12985
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12986
    "Created: / 12.1.1998 / 12:59:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12987
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12989
_Runtime_traceInstructions:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12990
    "/ void traceInstructions (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12991
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12992
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12993
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12994
    "Created: / 12.11.1998 / 18:59:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12995
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12996
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12997
_Runtime_traceMethodCalls:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12998
    "/ void traceMethodCalls (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12999
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13001
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13002
    "Created: / 12.11.1998 / 18:59:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13003
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13005
_ScrollPane_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13006
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13007
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13008
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13009
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13011
_SecurityManager_classDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13012
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13014
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13015
    "Created: / 12.11.1998 / 18:56:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13016
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13017
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13018
_SecurityManager_classLoaderDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13019
    |con depth|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13020
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13021
    con := thisContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13022
    depth := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13023
    [con notNil] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13024
	con receiver == JavaClassReader classLoaderQuerySignal ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13025
	    con selector == #handle:do: ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13026
		depth := depth + 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13027
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13028
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13029
	con := con sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13030
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13031
'JAVA: classLoaderDepth -> ' infoPrint. depth infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13032
    ^ depth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13034
    "Created: / 13.1.1998 / 09:21:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13035
    "Modified: / 13.1.1998 / 09:33:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13036
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13037
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13038
_SecurityManager_currentClassLoader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13039
    |loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13041
    loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13042
"/ 'JAVA: currentClassLoader -> ' infoPrint. loader displayString infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13043
    ^ loader.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13044
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13045
    "Created: / 13.1.1998 / 09:23:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13046
    "Modified: / 11.12.1998 / 12:39:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13047
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13048
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13049
_SecurityManager_currentLoadedClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13050
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13051
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13052
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13053
    "Created: / 12.11.1998 / 18:56:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13054
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13055
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13056
_SocketInputStream_socketRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13057
    ^ self anyStream_readBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13058
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13059
    "Created: / 25.1.1998 / 20:56:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13060
    "Modified: / 4.2.1998 / 15:52:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13061
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13063
_SocketOutputStream_socketWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13064
    ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13065
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13066
    "Created: / 25.1.1998 / 21:06:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13067
    "Modified: / 4.2.1998 / 15:52:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13068
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13070
_String_compareTo:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13071
    "int compareTo (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13072
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13073
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13075
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13076
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13077
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13078
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13079
    "Created: / 27.1.2000 / 02:28:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13080
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13081
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13082
_String_equals:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13083
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13084
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13085
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13086
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13087
    ^ (jString1 instVarAt:1) = (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13089
    "Created: / 18.11.1998 / 00:52:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13090
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13091
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13093
_String_equalsIgnoreCase:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13094
    "boolean equalsIgnoreCase (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13095
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13096
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13097
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13098
self halt:'untested'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13099
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13100
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13101
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13102
    ^ (jString1 instVarAt:1) sameAs: (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13103
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13104
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13105
    "Created: / 27.1.2000 / 02:27:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13106
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13108
_String_indexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13109
    "int indexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13110
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13111
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13112
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13113
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13114
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13115
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13116
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13117
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13118
    "Created: / 27.1.2000 / 02:30:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13119
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13120
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13121
_String_lastIndexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13122
    "int lastIndexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13123
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13124
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13126
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13127
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13128
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13129
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13130
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13131
    "Created: / 27.1.2000 / 02:33:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13132
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13133
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13134
_String_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13135
    |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13136
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13137
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13138
    ^ (jString instVarAt:3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13139
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13140
    "Created: / 18.11.1998 / 00:53:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13141
    "Modified: / 18.11.1998 / 00:54:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13142
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13143
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13144
_String_regionMatches2:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13145
    "boolean regionMatches (boolean int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13146
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13147
    |jString1 bool jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13149
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13150
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13151
    jString2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13152
    idx1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13153
    idx2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13154
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13156
    "Created: / 27.1.2000 / 02:33:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13157
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13159
_String_regionMatches:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13160
    "boolean regionMatches (int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13161
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13162
    |jString1 jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13164
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13165
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13166
    idx1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13167
    idx2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13168
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13169
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13170
    "Created: / 27.1.2000 / 02:32:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13171
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13173
_String_startsWith:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13174
    "boolean startsWith (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13175
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13176
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13177
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13178
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13179
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13180
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13181
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13182
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13183
    "Created: / 27.1.2000 / 02:31:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13184
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13186
_SystemColor_GetSysColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13187
    "/ int GetSysColor (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13188
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13190
    "Created: / 27.1.2000 / 02:44:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13191
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13193
_SystemResourceManager_getEntryFromKey:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13194
    "get a resource by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13195
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13196
    |key s|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13198
    key := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13199
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13200
    s := Java effectiveClassPath at:(key+1) ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13201
    s isNil ifTrue:[^ nil].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13202
    ^ Java as_String:s
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13203
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13204
    "Modified: / 22-11-2010 / 13:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13205
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13206
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13207
_SystemResourceManager_validateSystemResource:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13208
    "check a resource"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13210
    |bool str1 str2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13211
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13212
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13213
    str1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13214
    str2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13215
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13216
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13217
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13218
_System_getCallerClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13219
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13220
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13221
    |senderContext cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13222
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13223
    senderContext := nativeContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13224
    [senderContext receiver == (Java at:'java.lang.System')] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13225
	senderContext := senderContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13226
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13227
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13228
    senderContext method isStatic ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13229
	cls := senderContext receiver
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13230
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13231
	cls := senderContext receiver class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13232
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13233
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13234
	^ self javaClassObjectForClass:cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13235
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13236
    (cls isMemberOf:(Java at:'java.lang.Class')) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13237
	^ Java at:'java.lang.Class'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13238
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13239
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13240
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13242
    "Modified: / 27.1.1998 / 18:33:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13243
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13245
_System_validateSecurityManager:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13246
    "void validateSecurityManager (java.lang.SecurityManager)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13247
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13248
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13249
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13250
    "Created: / 27.1.2000 / 02:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13251
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13252
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13253
_ThreadGroup_initMainThreadGroup0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13254
    "void initMainThreadGroup0 (java.lang.ThreadGroup)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13256
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13258
    "Created: / 27.1.2000 / 02:45:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13259
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13261
_Thread_countStackFrames:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13262
    "/ int countStackFrames ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13263
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13265
    "Created: / 12.11.1998 / 19:06:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13266
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13267
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13268
_Thread_start: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13269
    "start the thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13270
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13271
    | jThread  jName  name  stProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13272
    jThread := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13273
    (jThread instVarNamed: 'priority') < 1 ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13274
        self halt.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13275
        jThread instVarNamed: 'priority' put: 1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13276
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13277
    stProcess := JavaProcess
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13278
                for: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13279
                    | procName |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13280
                    Object abortSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13281
                        handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13282
                            :ex |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13283
                            procName := stProcess name.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13284
                            (procName startsWith: 'JAVA-AWT-EventQueue') ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13285
                                ('JAVA [info]: thread ' , procName , ' aborted - restarting process.')
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13286
                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13287
                                ex restart.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13288
                            ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13289
                                (stProcess == JavaScreenUpdaterThread
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13290
                                    or: [ stProcess == JavaEventQueueThread ])
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13291
                                        ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13292
                                            ('JAVA [info]: thread ' , procName , ' aborted - restarting process.')
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13293
                                                infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13294
                                            ex restart
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13295
                                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13296
                                        ifFalse: [ ('JAVA [info]: thread ' , procName , ' aborted.') infoPrintCR. ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13297
                            ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13298
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13299
                        do: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13300
                            [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13301
                                JavaVM javaExceptionSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13302
                                    handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13303
                                        :ex |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13304
                                        | exClass |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13305
                                        procName := stProcess name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13306
                                        exClass := ex parameter class.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13307
                                        exClass == (Java at: 'java.lang.ThreadDeath') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13308
                                            ('JAVA: thread ' , procName , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13309
                                        ] ifFalse: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13310
                                            Transcript
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13311
                                                showCR: ('JAVA: thread ''' , procName , ''' terminated with exception: '
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13312
                                                        , exClass name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13313
                                        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13314
                                        ex return.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13315
                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13316
                                    do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13317
                                        Object messageNotUnderstoodSignal
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13318
                                            handle: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13319
                                                :ex |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13320
                                                |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13321
                                                "/ remap doesNotUnderstand with nil-receiver to
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13322
                                                "/ a nullPointerException ...
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13323
                                                 con  m |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13324
                                                con := ex suspendedContext.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13325
                                                con receiver isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13326
                                                    ((m := con sender method) notNil and: [ m isJavaMethod ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13327
                                                        self throwNullPointerException.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13328
                                                        AbortSignal raise.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13329
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13330
                                                        "/ ex proceed.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13331
                                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13332
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13333
                                                ex reject.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13334
                                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13335
                                            do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13336
                                                "/ Transcript showCR:(Timestamp now printString , 'start thread: ', stProcess name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13337
                                                jThread perform: #'run()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13338
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13339
                                                    ('JAVA: thread ' , stProcess name , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13340
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13341
                                                jThread perform: #'exit()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13342
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13343
                                                    ('JAVA: after exit of thread ' , stProcess name) infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13344
                                                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13345
                                            ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13346
                                    ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13347
                            ] ensure: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13348
                                | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13349
                                monitors := EnteredMonitorsPerProcess at: stProcess ifAbsent: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13350
                                monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13351
                                    monitors do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13352
                                        :obj |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13353
                                        | mon |
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 13354
                                        mon := obj getJavaMonitorFor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13355
                                        mon notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13356
                                            mon owningProcess == stProcess ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13357
                                                ('JAVA: release monitor owned by dying thread: ' , stProcess name)
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13358
                                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13359
                                                mon exit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13360
                                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13361
                                        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13362
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13363
                                    EnteredMonitorsPerProcess removeKey: stProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13364
                                    stProcess == JavaScreenUpdaterThread ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13365
                                        JavaScreenUpdaterThread := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13366
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13367
                                    stProcess == JavaEventQueueThread ifTrue: [ JavaEventQueueThread := nil. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13368
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13369
"/                                    screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13370
"/                                    screenUpdaterClass notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13371
"/                                        screenUpdaterClass instVarNamed:'updater' put:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13372
"/                                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13373
                                ].
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13374
                                Java removeThread: jThread ifAbsent: [].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13375
                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13376
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13377
                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13378
                priority: (Processor activePriority).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13379
    jName := jThread instVarNamed: 'name'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13380
    jName isString ifFalse: [ name := Java as_ST_String: jName. ] ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13381
        name := jName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13382
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13383
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13384
    "/ kludge - remember the ScreenUpdater ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13385
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13386
    name = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13387
        name = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13388
            (name startsWith: 'AWT-EventQueue') ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13389
                JavaEventQueueThread := stProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13390
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13391
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13392
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13393
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13394
"/name = 'UserDialogShowThread' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13395
"/self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13396
"/].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13397
    "/ when that process terminates, wakup any waiters
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13398
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13399
    stProcess addExitAction: [ self notify: jThread ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13400
    stProcess name: 'JAVA-' , name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13401
    stProcess restartable: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13402
    stProcess resume.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13403
    Java addThread: jThread for: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13404
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13405
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13406
    "Created: / 03-01-1998 / 02:05:52 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13407
    "Modified: / 24-12-1999 / 03:14:33 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13408
    "Modified: / 09-12-2011 / 12:52:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 13409
    "Modified: / 27-08-2012 / 11:36:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13410
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13412
_Thread_suspend0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13413
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13414
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13415
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13416
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13417
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13418
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13419
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13420
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13421
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13422
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13423
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13424
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13425
    stProcess suspend
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13426
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13427
    "Created: / 8.1.1998 / 01:05:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13428
    "Modified: / 6.2.1998 / 02:15:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13429
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13431
_Throwable_printStackTrace0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13432
    |out outStream exceptionObject contextList|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13433
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13434
    outStream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13435
    exceptionObject := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13436
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13437
    contextList := exceptionObject instVarNamed:'backtrace'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13438
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13439
    out := self javaConsoleStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13440
    out cr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13441
    out nextPutLine:'JAVA: stackTrace:'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13443
    contextList do:[:con |
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13444
	out
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13445
	    nextPutAll:'  ';
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13446
	    nextPutAll:(con method javaClass fullName);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13447
	    nextPutAll:'.';
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13448
	    nextPutAll:(con method selector);
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13449
	    nextPutAll:' [';
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13450
	    nextPutAll:(con method javaClass sourceFile);
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13451
	    nextPutAll:' ';
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13452
	    nextPutAll:(con quickLineNumber displayString);
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13453
	    nextPutAll:']'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13454
	out cr
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13455
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13456
    out nextPutLine:'----------------------------------------------------'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13458
    "Created: / 4.1.1998 / 14:27:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13459
    "Modified: / 10.11.1998 / 14:19:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13460
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13461
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13462
_URLConnection_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13463
    "/ void close ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13464
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13466
    "Created: / 12.11.1998 / 19:26:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13467
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13468
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13469
_URLConnection_finalize:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13470
    "/ void finalize ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13471
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13473
    "Created: / 12.11.1998 / 19:25:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13474
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13476
_URLConnection_getContentLength0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13477
    "/ int getContentLength0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13478
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13480
    "Created: / 12.11.1998 / 19:25:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13481
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13483
_URLConnection_getContentType0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13484
    "/ java.lang.String getContentType0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13485
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13487
    "Created: / 12.11.1998 / 19:25:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13488
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13490
_URLConnection_getHeaderField0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13491
    "/ java.lang.String getHeaderField0 (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13492
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13494
    "Created: / 12.11.1998 / 19:25:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13495
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13497
_URLConnection_pCreate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13498
    "/ void pCreate (java.lang.String java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13499
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13501
    "Created: / 12.11.1998 / 19:25:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13502
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13504
_URLInputStream_available:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13505
    "/ int available ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13506
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13508
    "Created: / 12.11.1998 / 19:24:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13509
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13511
_URLInputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13512
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13513
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13515
    "Created: / 12.11.1998 / 19:24:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13516
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13518
_URLInputStream_read:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13519
    "/ int read (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13520
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13522
    "Created: / 12.11.1998 / 19:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13523
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13525
_URLOutputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13526
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13527
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13529
    "Created: / 12.11.1998 / 19:24:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13530
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13532
_URLOutputStream_pClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13533
    "/ void pClose ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13534
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13536
    "Created: / 12.11.1998 / 19:25:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13537
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13539
_URLOutputStream_write:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13540
    "/ void write (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13541
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13543
    "Created: / 12.11.1998 / 19:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13544
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13546
_URLOutputStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13547
    "/ void writeBytes (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13548
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13550
    "Created: / 12.11.1998 / 19:24:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13551
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13553
_URLStreamHandlerFactory_pInit:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13554
    "/ self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13556
    "Created: / 10.1.1998 / 15:47:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13557
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13559
_URLStreamHandlerFactory_pSupportsProtocol:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13560
    "/ boolean pSupportsProtocol (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13561
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13562
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13563
    "Created: / 12.11.1998 / 19:23:43 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13564
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13566
_VM_getState:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13567
    "/ int getState ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13568
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13570
    "Created: / 12.11.1998 / 19:06:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13571
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13573
_VM_resetJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13574
    "/ void resetJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13575
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13577
    "Created: / 14.11.1998 / 10:43:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13578
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13580
_VM_resumeJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13581
    "/ void resumeJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13582
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13583
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13584
    "Created: / 14.11.1998 / 10:42:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13585
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13586
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13587
_VM_suspendJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13588
    "/ void suspendJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13589
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13590
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13591
    "Created: / 14.11.1998 / 10:43:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13592
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13593
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13594
_VM_threadsSuspended:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13595
    "/ boolean threadsSuspended ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13596
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13598
    "Created: / 12.11.1998 / 19:07:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13599
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13600
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13601
_VM_unsuspendSomeThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13602
    "/ void unsuspendSomeThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13603
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13605
    "Created: / 12.11.1998 / 19:07:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13606
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13608
_VM_unsuspendThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13609
    "/ void unsuspendThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13610
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13612
    "Created: / 12.11.1998 / 19:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13613
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13615
_VM_writeJavaMonitorReport:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13616
    "/ void writeJavaMonitorReport ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13617
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13619
    "Created: / 14.11.1998 / 10:43:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13620
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13622
_WButtonPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13623
    |jButtonPeer jButton jFrame frame button
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13624
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13626
    jButtonPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13627
    jButton := jButtonPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13629
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13630
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13632
    button := Button in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13633
    button sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13634
    button action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13635
			jButtonPeer perform:#'handleAction()V'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13636
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13638
    lbl := jButton instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13639
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13640
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13641
	button label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13642
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13643
    self createdWindowsView:button for:jButtonPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13645
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13646
	'WButtonPeer_create: ' print. frame print. ' -> ' print. button printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13647
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13649
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13650
    "Modified: / 11.12.1998 / 00:19:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13651
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13653
_WButtonPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13654
    |label jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13656
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13657
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13658
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13659
    label label:(Java as_ST_String:jString)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13661
    "Modified: / 8.1.1998 / 17:35:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13662
    "Created: / 1.2.1998 / 17:05:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13663
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13664
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13665
_WCanvasPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13666
    |jCanvasPeer jFrame frame subView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13668
    jCanvasPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13670
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13671
    jFrame isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13672
	self halt:'no frame in canvasPeer create'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13673
	subView := JavaView new.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13674
"/        self internalError:'no frame in canvasPeer create'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13675
"/        ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13676
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13677
	frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13678
	subView := JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13679
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13680
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13681
    subView delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13682
    subView javaPeer:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13684
    self createdWindowsView:subView for:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13686
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13687
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13688
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13690
    "Created: / 5.1.1998 / 00:59:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13691
    "Modified: / 16.1.1998 / 13:40:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13692
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13694
_WCheckboxMenuItemPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13695
    "/ void setState (boolean)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13696
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13698
    "Created: / 12.11.1998 / 19:14:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13699
    "Modified: / 3.12.1998 / 21:41:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13702
_WCheckboxPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13703
    |jCheckboxPeer jCheckbox jFrame frame checkBox lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13705
    jCheckboxPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13706
    jCheckbox := jCheckboxPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13708
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13709
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13711
    checkBox := CheckBox in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13712
    checkBox action:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13713
			jCheckboxPeer
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13714
			    perform:#'handleAction(Z)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13715
			    with:(checkBox isOn ifTrue:[1] ifFalse:[0])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13716
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13717
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13718
    lbl := jCheckbox instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13719
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13720
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13721
	checkBox label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13722
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13724
    self createdWindowsView:checkBox for:jCheckboxPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13725
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13726
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13727
	'WCheckboxPeer_create: ' print. frame print. ' -> ' print. checkBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13728
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13730
    "Created: / 7.1.1998 / 21:48:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13731
    "Modified: / 15.1.1998 / 12:27:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13732
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13734
_WCheckboxPeer_setCheckboxGroup:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13735
    |checkBox jGroup|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13737
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13738
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13739
    jGroup := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13741
    "Created: / 7.1.1998 / 21:48:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13742
    "Modified: / 25.1.1998 / 01:20:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13743
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13745
_WCheckboxPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13746
    "/ void setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13747
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13749
    "Created: / 12.11.1998 / 19:14:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13750
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13752
_WCheckboxPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13753
    |checkBox state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13754
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13755
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13757
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13758
    state ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13759
	checkBox turnOn
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13760
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13761
	checkBox turnOff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13762
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13764
    "Created: / 7.1.1998 / 21:49:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13765
    "Modified: / 25.1.1998 / 01:26:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13766
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13768
_WChoicePeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13769
    |jString index comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13771
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13772
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13773
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13774
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13776
    comboBox model list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13777
    comboBox model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13779
    "Created: / 7.1.1998 / 21:45:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13780
    "Modified: / 24.1.1998 / 18:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13781
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13783
_WChoicePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13784
    |jChoicePeer jChoice jFrame frame comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13786
    jChoicePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13787
    jChoice := jChoicePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13789
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13790
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13792
    comboBox := ComboListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13793
    comboBox model:(SelectionInList new list:(OrderedCollection new)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13794
    comboBox action:[:index |
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13795
			jChoicePeer
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13796
			    perform:#'handleAction(I)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13797
			    with:(comboBox model selectionIndex - 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13798
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13799
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13800
    self createdWindowsView:comboBox for:jChoicePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13802
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13803
	'WChoicePeer_create: ' print. frame print. ' -> ' print. comboBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13804
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13806
    "Created: / 7.1.1998 / 21:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13807
    "Modified: / 28.1.1998 / 23:19:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13808
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13809
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13810
_WChoicePeer_remove:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13811
    "/ void remove (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13812
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13814
    "Created: / 12.11.1998 / 19:12:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13815
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13816
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13817
_WChoicePeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13818
    self commonReshapeComponent:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13819
"/    self pReshape:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13820
    ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13822
    "Created: / 7.1.1998 / 21:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13823
    "Modified: / 23.12.1998 / 19:08:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13824
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13826
_WChoicePeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13827
    |comboBox index|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13829
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13830
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13831
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13832
    comboBox model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13834
    "Created: / 7.1.1998 / 21:45:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13835
    "Modified: / 25.1.1998 / 09:55:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13836
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13837
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13838
_WClipboard_getClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13839
    "/ java.lang.String getClipboardText ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13840
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13841
    |str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13843
    str := Screen current rootView getTextSelection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13844
    str isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13845
	str := ''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13846
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13847
    ^ Java as_String:''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13848
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13849
    "Modified: / 10.12.1998 / 21:28:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13850
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13852
_WClipboard_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13853
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13854
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13855
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13856
    "Created: / 4.1.1998 / 19:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13857
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13858
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13859
_WClipboard_setClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13860
    "/ void setClipboardText (java.awt.datatransfer.StringSelection)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13862
    |strSel data|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13864
    strSel := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13865
    data := strSel instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13866
    data class == (Java at:'java.lang.String') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13867
	Screen current rootView setTextSelection:(Java as_ST_String:data)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13868
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13869
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13871
    "Created: / 12.11.1998 / 19:15:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13872
    "Modified: / 10.12.1998 / 21:25:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13873
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13874
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13875
_WColor_getDefaultColor: nativeContext
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13876
    | clrIndex  jClr  clr |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13877
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13878
    clrIndex := nativeContext argAt: 1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13879
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13880
    "/ windows defaults:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13881
    "/  1: view background
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13882
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13883
    clrIndex == 1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13884
        clr := View defaultViewBackgroundColor.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13885
        clr isColor ifFalse: [ clr := Color gray: 50. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13886
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13887
    clrIndex == 2 ifTrue: [ clr := Color black. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13888
    clr isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13889
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13890
        self internalError: 'breakpoint'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13891
        ^ nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13892
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13893
    clr := clr on: (Screen current).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13894
    jClr := (self classForName: 'java.awt.Color') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13895
    jClr instVarNamed: 'pData' put: clr.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13896
    jClr instVarNamed: 'value' put: (clr rgbValue).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13897
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13898
"/ self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 13899
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13900
    ^ jClr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13902
    "Created: / 15.8.1997 / 15:38:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13903
    "Modified: / 4.1.1998 / 18:06:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13904
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13906
_WComponentPeer__beginValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13907
    "/ void _beginValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13908
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13910
    "Created: / 12.11.1998 / 19:10:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13911
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13913
_WComponentPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13914
    |view jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13916
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13918
    Object errorSignal catch:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13919
	view destroy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13920
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13921
    JavaWindowGroup removeView:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13922
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13923
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13924
    jPeer instVarNamed:'pData' put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13926
    "Created: / 7.1.1998 / 22:36:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13927
    "Modified: / 25.1.1998 / 16:43:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13928
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13930
_WComponentPeer__setBackground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13931
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13933
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13934
    view isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13936
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13937
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13939
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13940
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13942
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13944
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13945
"/        view viewBackground:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13946
"/        view backgroundPaint:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13947
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13948
"/        (view isMemberOf:JavaView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13949
"/            view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13950
"/            view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13951
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13952
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13954
    (view isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13955
	view := view scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13956
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13957
    view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13958
    view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13959
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13960
    "Created: / 4.1.1998 / 18:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13961
    "Modified: / 4.12.1998 / 17:26:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13962
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13963
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13964
_WComponentPeer__setForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13965
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13967
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13969
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13970
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13971
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13972
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13973
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13975
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13977
    view paint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13979
    "Created: / 4.1.1998 / 18:08:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13980
    "Modified: / 8.1.1998 / 17:32:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13981
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13982
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13983
_WComponentPeer_disable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13984
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13986
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13988
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13989
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13990
	view disable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13991
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13993
    "Created: / 6.1.1998 / 18:26:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13994
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13995
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13996
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13997
_WComponentPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13998
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14000
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14001
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14002
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14003
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14004
	view enable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14005
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14006
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14007
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14008
    "Created: / 13.1.1998 / 23:08:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14009
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14010
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14011
_WComponentPeer_endValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14012
    "/ void endValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14013
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14014
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14015
    "Created: / 12.11.1998 / 19:10:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14016
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14017
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14018
_WComponentPeer_getLocationOnScreen: nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14019
    "/ java.awt.Point getLocationOnScreen ()
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14020
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14021
    | view  p  jP |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14022
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14023
    view := self viewForWPeer: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14024
    view isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14025
    p := view originRelativeTo: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14026
    jP := (self classForName: 'java.awt.Point') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14027
    jP instVarNamed: 'x' put: p x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14028
    jP instVarNamed: 'y' put: p y.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14029
    ^ jP
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14030
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14031
    "Modified: / 5.12.1998 / 14:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14032
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14034
_WComponentPeer_handleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14035
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14036
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14037
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14038
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14040
    |view jEv stEv ignore|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14042
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14043
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14044
	jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14045
	stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14046
	(stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14047
	    ignore := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14048
	    view isJavaView ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14049
		ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14050
	    ] ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14051
		view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14052
		    stEv type == #terminate ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14053
			ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14054
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14055
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14056
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14058
	    ignore ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14059
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14060
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14061
		].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14062
		view dispatchEvent:stEv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14063
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14064
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14065
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14066
	    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14067
		('JAVA: WComponent - handleEvent ignored:' , stEv type) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14068
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14069
	    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14070
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14071
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14072
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14073
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14074
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14076
    "Created: / 6.1.1998 / 21:10:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14077
    "Modified: / 11.12.1998 / 01:04:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14080
_WComponentPeer_hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14081
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14083
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14084
"/ view isPopUpView ifTrue:[self halt].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14085
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14086
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14087
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14088
	view beInvisible
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14089
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14090
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14091
    "Created: / 7.1.1998 / 22:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14092
    "Modified: / 4.12.1998 / 17:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14093
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14094
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14095
_WComponentPeer_nativeHandleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14096
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14097
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14098
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14099
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14101
    |view jEv stEv|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14103
^self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14104
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14105
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14106
	(view isKindOf:JavaView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14107
	    jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14108
	    stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14109
	    (stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14110
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14111
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14112
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14113
		stEv sendEventWithFocusOn:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14114
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14115
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14116
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14117
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14118
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14119
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14120
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14122
    "Created: / 19.10.1998 / 21:26:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14123
    "Modified: / 19.10.1998 / 23:26:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14124
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14125
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14126
_WComponentPeer_requestFocus:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14127
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14129
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14130
"/ 'getFocus - ' print. view displayString printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14131
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14132
"/    view getKeyboardFocus
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14134
    "Created: / 7.1.1998 / 22:30:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14135
    "Modified: / 4.12.1998 / 19:42:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14136
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14138
_WComponentPeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14139
    self commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14141
    "Modified: / 18.3.1997 / 19:30:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14142
    "Created: / 4.1.1998 / 18:01:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14143
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14144
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14145
_WComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14146
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14147
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14148
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14149
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14150
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14151
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14152
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14153
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14156
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14157
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14158
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14159
"/        view viewBackground:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14160
"/        view backgroundPaint:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14161
"/    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14162
"/        (view isMemberOf:JavaView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14163
"/            view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14164
"/            view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14165
"/        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14166
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14167
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14168
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14169
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14170
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14171
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14172
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14173
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14174
    "Created: / 16.10.1998 / 02:16:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14175
    "Modified: / 16.10.1998 / 02:26:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14176
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14177
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14178
_WComponentPeer_setCursor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14179
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14180
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14181
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14182
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14184
    "Created: / 5.1.1998 / 01:52:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14185
    "Modified: / 25.1.1998 / 01:21:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14186
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14187
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14188
_WComponentPeer_setFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14189
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14191
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14192
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14193
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14194
    "Created: / 5.1.1998 / 00:55:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14195
    "Modified: / 25.1.1998 / 01:22:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14196
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14197
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14198
_WComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14199
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14200
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14201
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14202
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14203
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14204
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14205
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14206
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14207
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14208
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14209
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14210
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14211
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14212
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14213
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14214
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14215
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14216
    "Created: / 16.10.1998 / 02:18:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14217
    "Modified: / 16.10.1998 / 02:26:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14218
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14219
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14220
_WComponentPeer_setZOrderPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14221
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14223
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14224
"/    self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14225
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14226
"/ self internalError:'breakPoint'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14227
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14228
    "Created: / 4.1.1998 / 17:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14229
    "Modified: / 25.1.1998 / 01:22:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14230
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14232
_WComponentPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14233
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14235
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14237
    "/ frame views are under my browsers own control
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14238
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14239
	view beVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14240
	view realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14241
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14243
"/    view windowGroup notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14244
"/        windowServer addGroup:(view windowGroup)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14245
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14247
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14249
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14250
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14251
    "Created: / 5.1.1998 / 01:26:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14252
    "Modified: / 4.12.1998 / 17:43:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14253
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14255
_WComponentPeer_start:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14256
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14257
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14258
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14259
    "Created: / 5.1.1998 / 00:58:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14260
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14261
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14262
_WContainerPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14263
    "/ new with ns4.0 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14264
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14265
    "Created: / 16.10.1998 / 02:12:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14266
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14267
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14268
_WDefaultFontCharset_canConvert:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14269
    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14271
    "Modified: / 21.8.1997 / 15:56:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14272
    "Created: / 5.1.1998 / 01:55:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14273
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14275
_WDialogPeer__hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14276
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14278
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14280
    dialog hide.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14282
    "Created: / 7.1.1998 / 22:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14283
    "Modified: / 8.1.1998 / 17:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14284
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14286
_WDialogPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14287
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14289
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14290
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14291
"/ show does not work (yet); must setup windowgroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14292
"/ for it to get events ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14293
"/    dialog realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14295
dialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14296
"/dialog fixSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14297
"/dialog makeFullyVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14298
"/dialog openModal:[true] inGroup:JavaWindowGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14300
    "Created: / 7.1.1998 / 21:52:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14301
    "Modified: / 11.12.1998 / 14:43:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14302
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14304
_WDialogPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14305
    |jDialogPeer dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14307
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14309
    dialog := ModalBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14310
    jDialogPeer instVarNamed:'pData' put:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14312
    self createdWindowsView:dialog for:jDialogPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14313
    dialog windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14314
    JavaWindowGroup addTopView:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14315
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14316
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14317
	'WDialogPeer_create: ' print. dialog printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14318
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14320
    "Created: / 7.1.1998 / 21:51:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14321
    "Modified: / 15.1.1998 / 16:12:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14324
_WDrawingSurfaceInfo_getDepth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14325
    "/ int getDepth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14326
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14328
    "Created: / 12.11.1998 / 19:21:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14329
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14331
_WDrawingSurfaceInfo_getHBitmap:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14332
    "/ int getHBitmap ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14333
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14335
    "Created: / 12.11.1998 / 19:20:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14336
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14338
_WDrawingSurfaceInfo_getHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14339
    "/ int getHDC ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14340
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14342
    "Created: / 12.11.1998 / 19:20:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14343
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14345
_WDrawingSurfaceInfo_getHPalette:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14346
    "/ int getHPalette ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14347
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14349
    "Created: / 12.11.1998 / 19:21:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14350
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14352
_WDrawingSurfaceInfo_getHWnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14353
    "/ int getHWnd ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14354
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14356
    "Created: / 12.11.1998 / 19:20:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14357
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14359
_WDrawingSurfaceInfo_getPBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14360
    "/ int getPBits ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14361
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14363
    "Created: / 12.11.1998 / 19:20:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14364
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14366
_WDrawingSurfaceInfo_lock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14367
    "/ int lock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14368
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14370
    "Created: / 12.11.1998 / 19:20:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14371
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14372
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14373
_WDrawingSurfaceInfo_unlock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14374
    "/ void unlock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14375
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14377
    "Created: / 12.11.1998 / 19:20:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14380
_WEmbeddedFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14381
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14382
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14383
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14384
    "Created: / 12.11.1998 / 19:16:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14385
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14387
_WFileDialogPeer_show:nativeContext
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14388
    |jDialogPeer jDialog dialogView stDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14389
     title dir pattern f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14391
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14392
    jDialog := jDialogPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14393
    dialogView := jDialogPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14395
    stDialog := FileSelectionBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14397
    dir := jDialog instVarNamed:'dir'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14398
    dir notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14399
	stDialog directory:(Java as_ST_String:dir).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14400
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14401
    pattern := jDialog instVarNamed:'file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14402
    pattern notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14403
	stDialog pattern:(Java as_ST_String:pattern).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14404
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14405
    title := jDialog instVarNamed:'title'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14406
    title notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14407
	stDialog title:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14408
	stDialog label:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14409
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14411
    stDialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14413
    stDialog accepted ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14414
	f := stDialog pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14416
	"/ cannot use the one below - it has a builtIn fileSeparator if '\' (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14417
	"/ jDialogPeer perform:#'handleSelected(Ljava/lang/String;)V' with:(Java as_String:f).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14418
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14419
	jDialog
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14420
	    perform:#'setFile(Ljava/lang/String;)V'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14421
	    with:(Java as_String:(f asFilename baseName)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14422
	jDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14423
	    perform:#'setDirectory(Ljava/lang/String;)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14424
	    with:(Java as_String:(f asFilename directoryName , Filename separator asString)).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14425
	jDialog
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14426
	    perform:#'setVisible(Z)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14427
	    with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14428
    ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14429
	jDialogPeer
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14430
	    perform:#'handleCancel()V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14431
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14432
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14434
    "Created: / 7.1.1998 / 22:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14435
    "Modified: / 15.1.1998 / 13:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14436
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14438
_WFontMetrics_bytesWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14439
    "/ int bytesWidth (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14440
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14442
    "Created: / 12.11.1998 / 19:11:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14443
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14445
_WFontMetrics_getMFCharSegmentWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14446
    "get multi-font string-segment width.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14447
     Not yet supported - use standard strings width"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14448
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14449
    |jMetrics jFont jFontDescr stFont w
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14450
     bool1 cp offs lenght bp int1|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14452
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14453
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14454
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14455
    bool1 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14456
    cp := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14457
    offs := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14458
    lenght := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14459
    bp := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14460
    int1 := nativeContext argAt:8.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14462
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14463
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14464
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14465
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14466
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14467
    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14468
	stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14469
	jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14470
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14471
    w := stFont widthOf:cp from:offs+1 to:offs+lenght.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14472
    ^ w.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14474
    "Created: / 5.1.1998 / 01:57:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14475
    "Modified: / 13.1.1998 / 23:44:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14476
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14478
_WFontMetrics_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14479
    |jMetrics jFont stFont widths family name style size|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14480
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14481
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14482
    jFont := jMetrics instVarNamed:'font'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14484
    family := jFont instVarNamed:'family'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14485
    family := Java as_ST_String:family.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14486
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14487
    name := jFont instVarNamed:'name'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14488
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14490
    style := jFont instVarNamed:'style'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14491
    size := jFont instVarNamed:'size'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14493
    stFont := Font family:family size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14494
    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14495
        stFont := Font family:'helvetica' size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14496
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14497
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14498
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14499
"/    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14500
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14501
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14502
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14504
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14505
    jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14507
    jMetrics instVarNamed:'ascent'     put:stFont ascent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14508
    jMetrics instVarNamed:'descent'    put:stFont descent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14509
    jMetrics instVarNamed:'leading'    put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14510
    jMetrics instVarNamed:'height'     put:stFont height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14511
    jMetrics instVarNamed:'maxAscent'  put:stFont maxAscent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14512
    jMetrics instVarNamed:'maxDescent' put:stFont maxDescent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14513
    jMetrics instVarNamed:'maxHeight'  put:stFont maxHeight.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14514
    jMetrics instVarNamed:'maxAdvance' put:stFont maxWidth.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14516
    widths := Array new:256.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14517
    0 to:255 do:[:i |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14518
        widths at:(i+1) put:(stFont widthOf:(Character value:i))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14519
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14520
    jMetrics instVarNamed:'widths' put:widths.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14521
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14523
    "Modified: / 8.8.1997 / 12:06:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14524
    "Created: / 5.1.1998 / 01:54:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14525
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14527
_WFontMetrics_needsConversion:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14528
    |jFont jFontDescr stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14530
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14531
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14533
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14534
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14535
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14536
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14537
"/    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14538
"/        stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14539
"/        jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14540
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14541
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14543
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14545
    "Modified: / 17.8.1997 / 17:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14546
    "Created: / 5.1.1998 / 01:56:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14547
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14549
_WFramePeer__setIconImage:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14550
    |frame imgRep image|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14552
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14553
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14554
    imgRep notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14555
	image := imgRep instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14556
	(image notNil and:[image ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14557
	    frame icon:image.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14558
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14559
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14561
    "Created: / 27.4.1998 / 17:15:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14562
    "Modified: / 27.4.1998 / 17:18:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14563
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14565
_WFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14566
    |jFramePeer jFrame top frame pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14568
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14570
    "/ for now: a kludge to create an embedded frame for
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14571
    "/ mozillaFrames
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14572
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14573
    jFrame := jFramePeer instVarNamed:'target'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14574
    (jFrame notNil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14575
    and:[(pDataIdx := jFrame class instVarOffsetOf:'pData') notNil])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14576
    ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14577
	((frame := jFrame instVarAt:pDataIdx) notNil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14578
	and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14579
	    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14580
		'JAVA: targetFrame view already created: ' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14581
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14582
	    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14583
	    pDataIdx := jFramePeer class instVarOffsetOf:'pNativeWidget'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14584
	    pDataIdx isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14585
		"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14586
		pDataIdx := jFramePeer class instVarOffsetOf:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14587
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14588
	    jFramePeer instVarAt:pDataIdx put:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14589
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14590
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14591
	frame := jFramePeer instVarNamed:'pData'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14592
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14594
    (frame notNil and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14595
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14596
	    'JAVA: frame view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14597
	    jFramePeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14598
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14599
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14600
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14601
"/        frame := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14602
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14603
"/        JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14604
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14605
	frame := JavaTopView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14606
	frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14607
	frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14608
	self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14609
	JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14610
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14611
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14612
"/        frame := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14613
"/        frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14614
"/        frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14615
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14616
"/        JavaWindowGroup addTopView:top.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14617
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14618
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14619
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14620
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14621
	'JAVA: WFramePeer_create: ' print. jFramePeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14622
	' frame: ' print. frame printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14623
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14625
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14626
    "Modified: / 3.12.1998 / 00:10:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14629
_WFramePeer_setMenuBar0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14630
    |frame jMenuBarPeer menuPanel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14632
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14634
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14635
    jMenuBarPeer isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14636
	"/ mhmh - JAVA wants to remove the frames menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14637
	"/ but I have no handle on it (for destroy).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14638
	"/ search it in subViews of the frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14639
	frame subViews copy do:[:v |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14640
	    (v isKindOf:MenuPanel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14641
		v destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14642
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14643
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14644
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14645
	menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14646
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14647
	menuPanel origin:0.0@0.0 corner:1.0@(menuPanel preferredExtent y).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14648
	frame addSubView:menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14649
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14650
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14651
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14652
    "Created: / 7.1.1998 / 21:41:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14653
    "Modified: / 8.1.1998 / 17:35:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14654
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14655
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14656
_WFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14657
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14658
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14659
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14661
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14662
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14663
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14664
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14665
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14666
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14667
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14668
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14669
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14670
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14671
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14672
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14673
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14674
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14675
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14676
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14677
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14678
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14679
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14680
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14681
    "Created: / 16.10.1998 / 02:21:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14682
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14683
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14684
_WFramePeer_setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14685
    |view jString string|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14686
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14687
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14688
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14689
    jString := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14690
    string := Java as_ST_String:jString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14691
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14692
"/ 'JAVA: WFramePeer_pSetTitle: ' print. string print. ' ' print. view printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14694
    view label:string.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14695
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14696
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14697
    "Modified: / 8.1.1998 / 17:37:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14698
    "Created: / 27.1.1998 / 21:42:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14699
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14700
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14701
_WGraphics__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14702
    "/ void _dispose()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14703
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14705
    "Created: / 12.11.1998 / 19:17:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14706
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14707
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14708
_WGraphics_changeClip:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14709
    |gc x y w h r bool|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14710
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14711
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14712
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14713
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14714
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14715
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14716
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14717
    bool := (nativeContext argAt:5) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14719
    r := Rectangle left:x top:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14720
"/ 'WGraphics_changeClip: ' infoPrint. r infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14721
    gc clippingRectangle:r.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14723
    "Created: / 6.1.1998 / 20:57:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14724
    "Modified: / 20.10.1998 / 19:40:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14725
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14727
_WGraphics_clearRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14728
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14730
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14731
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14733
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14734
	'JAVA: drawing on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14735
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14736
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14738
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14739
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14740
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14741
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14743
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14744
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14745
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14746
    gc clearRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14748
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14749
    "Modified: / 8.1.1998 / 00:21:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14750
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14751
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14752
_WGraphics_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14753
    "/ void close (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14754
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14755
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14756
    "Created: / 12.11.1998 / 19:19:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14757
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14758
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14759
_WGraphics_copyArea:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14760
    |gc srcX srcY w h deltaX deltaY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14761
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14762
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14763
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14765
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14766
	'JAVA: copyArea on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14767
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14768
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14769
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14770
    srcX := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14771
    srcY := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14772
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14773
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14774
    deltaX := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14775
    deltaY := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14776
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14777
    gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14778
	copyFrom:gc
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14779
	x:srcX y:srcY
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14780
	toX:srcX+deltaX y:srcY+deltaY
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14781
	width:w height:h
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14783
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14784
    "Modified: / 9.4.1998 / 22:01:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14785
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14787
_WGraphics_createFromComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14788
    |jGraphics jWin view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14789
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14790
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14791
    jWin := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14793
    view := KnownWindows at:jWin ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14794
    view isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14795
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14796
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14797
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14798
    view clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14799
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14800
"/    "/ just a consistency check ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14801
"/    (jWin instVarNamed:'xid') ~~ view ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14802
"/        self halt:'consistency check'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14803
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14805
    jGraphics instVarNamed:'pData' put:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14807
    "Created: / 6.1.1998 / 20:55:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14808
    "Modified: / 20.10.1998 / 19:38:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14809
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14811
_WGraphics_createFromGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14812
    |jGraphics graphics gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14814
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14815
    graphics := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14816
    gc := graphics instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14818
    jGraphics instVarNamed:'pData' put:gc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14819
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14820
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14821
    "Created: / 8.1.1998 / 00:47:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14822
    "Modified: / 20.10.1998 / 19:37:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14823
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14825
_WGraphics_createFromHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14826
    "/ void createFromHDC (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14827
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14829
    "Created: / 12.11.1998 / 19:17:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14830
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14832
_WGraphics_createFromPrintJob:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14833
    "/ void createFromPrintJob (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14834
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14836
    "Created: / 12.11.1998 / 19:17:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14837
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14839
_WGraphics_dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14840
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14842
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14843
    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14844
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14845
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14846
    "Created: / 6.1.1998 / 20:58:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14847
    "Modified: / 20.10.1998 / 19:35:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14848
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14850
_WGraphics_drawArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14851
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14853
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14854
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14855
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14857
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14858
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14859
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14860
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14861
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14862
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14864
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14865
	'drawArc x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14866
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14867
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14868
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14869
    gc
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14870
	displayArcX:x y:y
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14871
	width:w height:h
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14872
	from:startAngle angle:(endAngle - startAngle).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14874
    "Created: / 6.1.1998 / 21:00:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14875
    "Modified: / 28.1.1999 / 17:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14876
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14878
_WGraphics_drawBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14879
    "/ void drawBytes (byte[] int int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14880
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14882
    "Created: / 12.11.1998 / 19:18:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14883
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14884
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14885
_WGraphics_drawLine:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14886
    |gc x y x2 y2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14887
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14888
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14889
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14890
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14892
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14893
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14894
    x2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14895
    y2 := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14896
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14897
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14898
	'drawLine x/y= ' print. x print. '@' print. y print. ' x2/y2= ' print. x2 print. '@' print. y2 printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14899
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14900
    gc displayLineFromX:x y:y toX:x2 y:y2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14902
    "Created: / 6.1.1998 / 20:59:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14903
    "Modified: / 8.1.1998 / 00:34:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14904
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14906
_WGraphics_drawMFCharsConvertedSegment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14907
    "/ int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14908
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14910
    "Created: / 12.11.1998 / 19:18:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14911
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14912
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14913
_WGraphics_drawMFCharsSegment:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14914
    |jFont jFontDescr s gc x y offs len|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14915
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14916
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14917
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14918
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14919
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14920
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14921
    s := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14922
    offs := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14923
    len := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14924
    x := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14925
    y := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14926
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14927
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14928
	'drawMFCharsSegment x/y= ' print. x print. '@' print. y print. ' s= ' print. s printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14929
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14930
    gc displayString:s from:offs+1 to:offs+len x:x y:y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14931
    ^ (gc font onDevice:(gc graphicsDevice)) widthOf:s.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14933
    "Created: / 6.1.1998 / 21:01:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14934
    "Modified: / 25.1.1998 / 20:45:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14935
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14936
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14937
_WGraphics_drawOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14938
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14940
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14941
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14942
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14944
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14945
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14946
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14947
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14948
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14949
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14950
	'drawOval x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14951
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14952
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14953
    gc displayArcX:x y:y width:w height:h from:0 angle:360.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14954
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14955
    "Created: / 8.1.1998 / 00:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14956
    "Modified: / 9.4.1998 / 22:10:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14957
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14958
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 14959
_WGraphics_drawPolygon:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14960
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14962
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14963
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14964
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14966
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14967
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14968
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14969
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14970
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14971
	'drawPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14972
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14973
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14974
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14975
    gc displayPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14977
    "Created: / 8.1.1998 / 00:57:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14978
    "Modified: / 8.1.1998 / 00:57:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14979
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14980
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14981
_WGraphics_drawPolyline:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14982
    "/ void drawPolyline (int[] int[] int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14983
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14985
    "Created: / 12.11.1998 / 19:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14986
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14988
_WGraphics_drawRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14989
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14990
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14991
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14992
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14993
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14994
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14995
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14996
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14997
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14998
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14999
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15000
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15001
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15003
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15004
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15005
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15006
    "Created: / 8.1.1998 / 00:59:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15007
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15009
_WGraphics_drawRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15010
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15011
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15012
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15013
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15014
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15016
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15017
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15018
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15019
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15021
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15022
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15023
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15024
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15026
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15027
    "Created: / 8.1.1998 / 00:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15028
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15030
_WGraphics_drawSFChars:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15031
    "/ void drawSFChars (char[]s, int pos1, int len, int x, int y)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15032
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15033
    |gc str x y idx1 nChars|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15035
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15036
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15038
    str := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15039
    idx1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15040
    nChars := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15041
    x := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15042
    y := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15043
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15044
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15045
	'drawSFChars x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15046
	       ' s= ' print. str printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15047
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15048
    gc displayString:str from:idx1+1 to:idx1+nChars x:x y:y
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15049
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15050
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15051
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15052
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15053
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15055
_WGraphics_fillArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15056
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15058
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15059
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15060
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15062
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15063
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15064
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15065
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15066
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15067
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15069
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15070
	'fillArc x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15071
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15072
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15073
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15074
    gc fillArcX:x y:y width:w height:h from:startAngle angle:(endAngle - startAngle)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15076
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15077
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15080
_WGraphics_fillOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15081
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15083
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15084
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15085
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15087
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15088
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15089
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15090
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15091
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15092
    DrawOPTrace ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15093
	'drawOval x/y= ' print. x print. '@' print. y print.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15094
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15095
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15096
    gc fillArcX:x y:y width:w height:h from:0 angle:360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15098
    "Created: / 8.1.1998 / 00:46:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15099
    "Modified: / 8.1.1998 / 00:46:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15100
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15101
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15102
_WGraphics_fillPolygon:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15103
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15105
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15106
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15107
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15109
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15110
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15111
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15113
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15114
	'fillPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15115
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15117
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15118
    gc fillPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15119
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15120
    "Created: / 8.1.1998 / 00:58:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15121
    "Modified: / 25.1.1998 / 11:03:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15122
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15124
_WGraphics_fillRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15125
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15127
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15128
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15129
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15131
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15132
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15133
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15134
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15136
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15137
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15139
    gc fillRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15141
    "Created: / 15.8.1997 / 15:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15142
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15143
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15145
_WGraphics_fillRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15146
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15148
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15149
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15150
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15152
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15153
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15154
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15155
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15156
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15157
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15158
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15159
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15160
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15162
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15163
    "Created: / 8.1.1998 / 00:59:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15164
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15165
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15166
_WGraphics_getClipBounds: nativeContext
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15167
    | gc  rect  r  x  y  w  h |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15168
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15169
    gc := self gcForWGraphics: nativeContext.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15170
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15171
"/    gc isNil ifTrue:[^ nil].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15172
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15173
    rect := (self classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15174
    (gc isMemberOf: JavaView) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15175
        "/ r := gc clippingRectangleOrNil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15176
        r := gc getNextUpdateRectangle.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15177
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15178
    r isNil ifTrue: [ r := gc clippingRectangleOrNil. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15179
    r isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15180
        x := y := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15181
        w := (gc width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15182
        h := (gc height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15183
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15184
        x := (r left).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15185
        y := (r top).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15186
        w := (r width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15187
        h := (r height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15188
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15189
    rect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15190
    rect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15191
    rect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15192
    rect instVarNamed: 'height' put: h.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15193
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15194
"/ 'WGraphics__getClipBounds ' infoPrint. (x@y extent:w@h) infoPrintCR.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15195
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15196
    ^ rect
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15198
    "Created: / 6.1.1998 / 20:58:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15199
    "Modified: / 23.12.1998 / 20:14:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15200
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15201
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15202
_WGraphics_imageCreate:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15203
    |jGraphics imgRep|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15205
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15206
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15208
    jGraphics instVarNamed:'pData' put:(imgRep instVarNamed:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15209
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15211
    "Created: / 11.1.1998 / 16:34:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15212
    "Modified: / 17.1.1998 / 12:37:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15213
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15215
_WGraphics_pSetFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15216
    |gc jFont stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15218
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15219
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15221
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15222
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15223
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15224
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15225
	gc font:stFont
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15226
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15227
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15228
    "Created: / 6.1.1998 / 20:56:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15229
    "Modified: / 15.1.1998 / 12:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15230
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15232
_WGraphics_pSetForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15233
    |gc rgb clr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15235
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15237
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15238
    rgb isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15239
        "/ its a java.awt.Color
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15240
        rgb := rgb instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15241
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15242
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15243
    gc paint:(clr nearestOn:gc device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15244
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15245
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15246
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15248
    "Created: / 6.1.1998 / 20:56:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15249
    "Modified: / 23.12.1998 / 20:10:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15250
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15251
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15252
_WGraphics_print:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15253
    "/ void print (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15254
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15256
    "Created: / 12.11.1998 / 19:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15257
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15259
_WGraphics_removeClip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15260
    "/ void removeClip ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15261
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15263
    "Created: / 12.11.1998 / 19:18:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15264
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15266
_WGraphics_setPaintMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15267
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15269
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15270
    gc function:#copy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15272
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15273
	'copyMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15274
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15276
    "Created: / 8.1.1998 / 00:33:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15277
    "Modified: / 28.1.1998 / 23:25:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15278
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15280
_WGraphics_setXORMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15281
    |gc jColor rgb invColor device|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15283
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15284
    jColor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15285
    device := gc graphicsDevice.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15286
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15287
"/    "/ on trueColor systems, use the provided
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15288
"/    "/ rgb value for inverting.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15289
"/    "/ on palette systems, use white ^ black
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15290
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15291
"/    device visualType == #TrueColor ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15292
"/        rgb := jColor instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15293
"/        rgb := rgb bitAnd:16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15294
"/        rgb == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15295
"/            rgb := 16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15296
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15297
"/        invColor := rgb
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15298
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15299
"/        invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15300
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15302
    invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15304
"/    gc foreground:(Color colorId:invColor)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15305
"/       background:device blackColor.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 15306
    device
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15307
	setForeground:invColor background:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15308
	in:gc gcId.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15309
    gc function:#xor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15311
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15312
	'xorMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15313
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15315
    "Created: / 8.1.1998 / 00:36:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15316
    "Modified: / 28.1.1998 / 23:45:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15317
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15319
_WLabelPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15320
    |jLabelPeer jLabel jFrame frame label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15321
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15323
    jLabelPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15324
    jLabel := jLabelPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15326
    lbl := jLabel instVarNamed:'text'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15327
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15328
	lbl := Java as_ST_String:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15329
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15331
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15332
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15334
    label := Label in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15335
    label sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15336
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15337
	label label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15338
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15339
    self createdWindowsView:label for:jLabelPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15341
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15342
	'WLabelPeer_create: ' print. frame print. ' -> ' print. label printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15343
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15345
    "Created: / 7.1.1998 / 21:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15346
    "Modified: / 13.1.1998 / 22:10:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15347
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15349
_WLabelPeer_setAlignment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15350
    |label alignNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15352
    alignNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15353
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15354
    label notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15355
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15357
    "Created: / 7.1.1998 / 21:43:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15358
    "Modified: / 8.1.1998 / 17:35:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15359
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15361
_WLabelPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15362
    |label jString str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15363
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15364
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15366
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15367
    jString notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15368
	str := Java as_ST_String:jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15369
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15370
    label label:str
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15371
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15372
    "Created: / 7.1.1998 / 21:43:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15373
    "Modified: / 3.12.1998 / 14:59:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15374
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15376
_WListPeer__addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15377
    |jString index1 length selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15379
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15381
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15382
    index1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15383
    length := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15384
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15385
    (m := selListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15386
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15387
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15388
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15390
    "Created: / 26.10.1998 / 20:11:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15391
    "Modified: / 14.11.1998 / 01:21:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15392
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15393
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15394
_WListPeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15395
    |jString index selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15397
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15399
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15400
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15401
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15402
    m := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15403
    m isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15404
	Transcript showCR:'JAVA: access to listModel of closed view'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15405
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15406
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15407
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15408
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15410
    "Created: / 24.1.1998 / 21:10:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15411
    "Modified: / 2.11.1998 / 17:12:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15412
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15414
_WListPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15415
    |jListPeer jFrame frame selectionInListView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15416
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15417
    jListPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15418
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15419
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15420
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15421
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15422
    selectionInListView := ScrollableView for:SelectionInListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15423
    selectionInListView action:[:index | jListPeer perform:#'handleListChanged(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15424
    selectionInListView doubleClickAction:[:index | jListPeer perform:#'handleAction(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15425
    selectionInListView model:(SelectionInList new list:(List new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15426
    selectionInListView useIndex:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15428
    self createdWindowsView:selectionInListView for:jListPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15429
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15430
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15431
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. selectionInListView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15432
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15433
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15434
    "Created: / 24.1.1998 / 19:58:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15435
    "Modified: / 9.4.1998 / 22:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15436
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15438
_WListPeer_delItems:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15439
    |jString index1 index2 selListView model list|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15441
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15442
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15443
    index1 := (nativeContext argAt:1) + 1. "/ java indices are 0-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15444
    index2 := (nativeContext argAt:2) + 1. "/ st indices are 1-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15446
    model := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15447
    model isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15448
    list := model list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15449
    list size >= index1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15450
	list removeFromIndex:index1 toIndex:(index2 min:list size).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15451
	model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15452
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15453
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15454
    "Created: / 9.4.1998 / 22:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15455
    "Modified: / 30.12.1998 / 20:00:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15456
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15457
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15458
_WListPeer_deselect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15459
    "/ void deselect (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15460
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15462
    "Created: / 12.11.1998 / 19:15:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15463
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15464
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15465
_WListPeer_getMaxWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15466
    "/ int getMaxWidth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15468
    ^ 1000 "/ a dummy value
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15469
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15470
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15472
    "Created: / 14.11.1998 / 10:44:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15473
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15475
_WListPeer_isSelected:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15476
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15477
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15478
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15480
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15481
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15482
	(model selectionIndex == (index + 1))  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15483
	ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15484
	    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15485
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15486
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15487
    ^ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15489
    "Created: / 24.1.1998 / 22:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15490
    "Modified: / 25.1.1998 / 01:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15491
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15493
_WListPeer_makeVisible:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15494
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15496
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15498
    lineNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15500
    selectionInListView makeLineVisible:(lineNr + 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15501
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15502
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15503
    "Created: / 20.10.1998 / 14:14:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15504
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15506
_WListPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15507
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15508
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15509
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15511
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15512
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15513
	model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15514
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15516
    "Created: / 24.1.1998 / 22:32:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15517
    "Modified: / 25.1.1998 / 01:28:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15518
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15520
_WListPeer_setMultipleSelections:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15521
    |selectionInListView onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15523
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15525
    onOff := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15527
    selectionInListView multipleSelectOk:onOff.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15529
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15530
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15532
_WListPeer_updateMaxItemWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15533
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15535
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15537
    "Created: / 26.10.1998 / 20:09:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15538
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15540
_WMenuBarPeer_addMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15541
    "/ void addMenu (java.awt.Menu)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15542
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15544
    "Created: / 12.11.1998 / 19:14:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15545
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15546
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15547
_WMenuBarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15548
    |jMenuBarPeer jMenuBar jFrame frame menuBar|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15550
    jMenuBarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15551
    jMenuBar := jMenuBarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15553
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15554
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15556
    menuBar := MenuPanel in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15557
    menuBar verticalLayout:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15558
    menuBar realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15559
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15560
    self createdWindowsView:menuBar for:jMenuBarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15561
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15562
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15563
	'WMenuBarPeer_create: ' print. frame print. ' -> ' print. menuBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15564
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15565
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15566
    "Created: / 7.1.1998 / 21:38:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15567
    "Modified: / 25.1.1998 / 13:19:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15568
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15570
_WMenuBarPeer_delMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15571
    "/ void delMenu (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15572
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15573
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15574
    "Created: / 12.11.1998 / 19:14:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15575
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15576
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15577
_WMenuItemPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15578
    |jMenuItemPeer item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15579
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15580
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15581
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15583
"/ what should be done here ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15585
    "Created: / 29.3.1998 / 17:16:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15586
    "Modified: / 29.3.1998 / 17:16:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15587
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15589
_WMenuItemPeer__setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15590
    "/ void _setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15591
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15592
    |jMenuItemPeer item label|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15594
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15595
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15596
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15597
	'JAVA [warning]: NULL menu item in setLabel' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15598
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15599
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15601
    label := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15602
    label isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15603
	label := ''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15604
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15605
	label := Java as_ST_String:label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15606
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15607
    item label:label.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15608
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15609
    "Modified: / 11.12.1998 / 16:40:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15610
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15611
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15612
_WMenuItemPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15613
    |jMenuItemPeer jMenuItem jMenuPeer menu item lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15614
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15615
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15616
    jMenuItem := jMenuItemPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15618
    jMenuPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15619
    menu := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15620
    (menu isNil or:[menu == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15621
	'JAVA: no menu to create item in' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15622
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15623
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15624
    item := menu createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15625
    item value:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15626
		jMenuItemPeer perform:#'handleAction(I)V' with:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15627
	       ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15629
    lbl := jMenuItem instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15630
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15631
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15632
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15633
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15635
    jMenuItemPeer instVarNamed:'pData' put:item.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15637
    WindowOPTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15638
	'WMenuItem_create: ' print. menu print. ' -> ' print. item printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15639
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15640
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15641
    "Created: / 7.1.1998 / 21:40:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15642
    "Modified: / 3.12.1998 / 20:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15643
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15645
_WMenuItemPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15646
    |jMenuItemPeer item state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15648
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15649
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15650
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15651
	'JAVA [warning]: NULL menu item in enable' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15652
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15653
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15655
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15656
    item enabled:(state ~~ 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15657
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15658
    "Created: / 7.1.1998 / 22:41:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15659
    "Modified: / 11.12.1998 / 16:40:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15660
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15661
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15662
_WMenuPeer_addSeparator:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15663
    "/ void addSeparator ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15664
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15666
    "Created: / 12.11.1998 / 19:13:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15667
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15669
_WMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15670
    |jMenuPeer jMenu jMenuBarPeer menuPanel menu
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15671
     lbl item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15672
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15673
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15674
    jMenu := jMenuPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15676
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15677
    menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15679
    item := menuPanel createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15680
    lbl := jMenu instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15681
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15682
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15683
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15684
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15686
    menu := MenuPanel new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15687
    item submenu:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15688
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15689
    jMenuPeer instVarNamed:'pData' put:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15691
'createMenuPeer: ' print. menuPanel print. ' -> ' print. menu printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15692
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15693
    "Created: / 7.1.1998 / 21:39:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15694
    "Modified: / 13.1.1998 / 22:11:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15695
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15697
_WMenuPeer_createSubMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15698
    "/ void createSubMenu (sun.awt.windows.WMenuPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15699
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15701
    "Created: / 12.11.1998 / 19:13:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15702
    "Modified: / 3.12.1998 / 21:41:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15703
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15705
_WMenuPeer_delItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15706
    "/ void delItem (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15707
    |jMenuPeer jMenu menuPanel itemIndex|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15709
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15710
    menuPanel := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15712
    itemIndex := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15713
    menuPanel remove:itemIndex.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15715
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15716
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15717
    "Created: / 12.11.1998 / 19:13:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15718
    "Modified: / 10.12.1998 / 21:12:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15719
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15720
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15721
_WPanelPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15722
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15724
    "Created: / 27.1.1998 / 21:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15725
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15726
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15727
_WPopupMenuPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15728
    "/ void _show (java.awt.Event)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15729
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15730
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15731
    "Created: / 12.11.1998 / 19:12:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15732
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15733
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15734
_WPopupMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15735
    "/ void createMenu (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15736
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15738
    "Created: / 12.11.1998 / 19:12:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15739
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15741
_WPrintJob_end:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15742
    "/ void end ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15743
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15745
    "Created: / 12.11.1998 / 19:11:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15746
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15747
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15748
_WScrollPanePeer__getHScrollbarHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15749
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15751
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15752
    ^ HorizontalScrollBar new preferredExtent y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15754
    "Created: / 9.4.1998 / 17:30:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15755
    "Modified: / 10.4.1998 / 14:59:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15756
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15757
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15758
_WScrollPanePeer__getVScrollbarWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15759
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15761
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15762
    ^ ScrollBar new preferredExtent x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15764
    "Created: / 9.4.1998 / 17:29:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15765
    "Modified: / 10.4.1998 / 15:00:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15766
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15768
_WScrollPanePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15769
    |jScrollPanePeer jScrollPane jFrame frame scrollPane
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15770
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15772
    jScrollPanePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15773
    jScrollPane := jScrollPanePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15775
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15776
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15777
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15778
    "/ create with a simple view ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15779
    scrollPane := ScrollableView for:JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15780
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15781
    self createdWindowsView:scrollPane for:jScrollPanePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15783
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15784
	'WScrollPanePeer_create: ' print. frame print. ' -> ' print. scrollPane printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15785
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15787
    "Created: / 9.4.1998 / 17:25:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15788
    "Modified: / 9.4.1998 / 22:06:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15789
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15791
_WScrollPanePeer_getOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15792
    "/ int getOffset (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15793
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15795
    "Created: / 12.11.1998 / 19:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15796
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15798
_WScrollPanePeer_getScrollChild:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15799
    "/ java.awt.Component getScrollChild ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15800
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15802
    "Created: / 12.11.1998 / 19:17:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15803
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15805
_WScrollPanePeer_setInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15806
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15807
    "Modified: / 9.4.1998 / 17:26:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15808
    "Created: / 9.4.1998 / 17:29:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15809
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15811
_WScrollPanePeer_setScrollPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15812
    "/ void setScrollPosition (int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15813
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15814
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15815
    "Created: / 12.11.1998 / 19:16:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15816
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15818
_WScrollPanePeer_setSpans:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15820
    "Created: / 9.4.1998 / 17:31:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15821
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15823
_WScrollbarPeer__setValues:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15824
    |scrollBar value visibleAmount min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15825
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15826
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15827
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15828
    value := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15829
    visibleAmount := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15830
    min := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15831
    max := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15833
    (min ~~ 0 or:[max ~~ 100]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15834
	scrollBar thumb start:min stop:max.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15835
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15836
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15837
    scrollBar thumbOrigin:value thumbHeight:visibleAmount.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15839
    "Created: / 13.1.1998 / 22:13:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15840
    "Modified: / 14.10.1998 / 14:53:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15841
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15843
_WScrollbarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15844
    |jScrollbarPeer jScrollbar jFrame frame scrollBar
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15845
     min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15846
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15847
    jScrollbarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15848
    jScrollbar := jScrollbarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15850
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15851
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15853
    (jScrollbar instVarNamed:'orientation') == 0 "HORIZONTAL" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15854
	scrollBar := HorizontalScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15855
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15856
	scrollBar := ScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15857
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15858
    min := jScrollbar instVarNamed:'minimum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15859
    max := jScrollbar instVarNamed:'maximum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15861
    scrollBar scrollDownAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15862
			scrollBar thumbOrigin:(scrollBar thumbOrigin + ((max-min)/10) min:max).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15863
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15864
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15865
    scrollBar scrollUpAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15866
			scrollBar thumbOrigin:(scrollBar thumbOrigin - ((max-min)/10) max:min).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15867
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15868
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15869
    scrollBar scrollAction:[:org |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15870
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:org rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15871
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15872
    self createdWindowsView:scrollBar for:jScrollbarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15874
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15875
	'WScrollbarPeer_create: ' print. frame print. ' -> ' print. scrollBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15876
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15878
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15879
    "Modified: / 14.10.1998 / 15:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15880
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15882
_WScrollbarPeer_setLineIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15883
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15885
Transcript showCR:'JavaVM: WScrollbarPeer_setLineIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15886
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15887
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15889
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15890
"/    scrollBar thumb lineIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15891
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15892
    "Created: / 25.1.1998 / 11:52:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15893
    "Modified: / 14.10.1998 / 14:53:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15894
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15896
_WScrollbarPeer_setPageIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15897
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15898
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15899
Transcript showCR:'JavaVM: WScrollbarPeer_setPageIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15901
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15903
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15904
"/    scrollBar thumb pageIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15905
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15906
    "Created: / 25.1.1998 / 11:52:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15907
    "Modified: / 14.10.1998 / 14:54:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15908
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15910
_WTextAreaPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15911
    |jTextAreaPeer jFrame frame editTextView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15913
    jTextAreaPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15915
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15916
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15918
    editTextView := HVScrollableView for:EditTextView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15919
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15920
    self createdWindowsView:editTextView for:jTextAreaPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15922
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15923
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. editTextView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15924
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15926
    "Created: / 7.1.1998 / 21:49:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15927
    "Modified: / 15.1.1998 / 12:56:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15928
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15930
_WTextAreaPeer_insertText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15931
    |textView pos string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15933
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15934
    (textView isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15935
	textView := textView scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15936
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15937
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15938
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15939
    string := Java as_ST_String:jstring.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15940
    pos := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15942
    textView insert:string at:pos.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15943
    textView cursorToCharacterPosition:pos + string size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15944
    textView makeCursorVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15945
"/ textView invalidateRepairNow:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15946
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15948
    "Created: / 7.1.1998 / 21:50:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15949
    "Modified: / 5.4.1998 / 17:37:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15950
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15951
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15952
_WTextAreaPeer_replaceText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15953
    "/ void replaceText (java.lang.String int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15954
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15956
    "Created: / 12.11.1998 / 19:11:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15957
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15959
_WTextComponentPeer_enableEditing:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15960
    |textView enabled|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15962
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15963
    enabled := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15965
    ^ textView readOnly:enabled not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15966
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15967
    "Created: / 5.1.1998 / 01:29:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15968
    "Modified: / 25.1.1998 / 16:29:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15969
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15971
_WTextComponentPeer_getSelectionEnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15972
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15973
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15974
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15976
    ^ textView characterPositionOfSelectionEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15977
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15978
    "Created: / 8.1.1998 / 17:41:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15979
    "Modified: / 15.1.1998 / 15:47:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15980
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15982
_WTextComponentPeer_getSelectionStart:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15983
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15984
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15985
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15986
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15987
    ^ textView characterPositionOfSelection - 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15989
    "Created: / 15.8.1997 / 15:45:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15990
    "Modified: / 15.1.1998 / 15:46:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15991
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15992
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15993
_WTextComponentPeer_getText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15994
    |textView string jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15995
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15996
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15997
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15998
    string := textView contents asString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15999
    jString := Java as_String:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16000
    ^ jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16001
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16002
    "Created: / 6.1.1998 / 21:05:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16003
    "Modified: / 8.1.1998 / 17:36:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16004
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16005
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16006
_WTextComponentPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16007
    |textView selStart selEnd|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16009
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16010
    selStart := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16011
    selEnd := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16013
    selStart == selEnd ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16014
	"/ clear selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16015
	textView unselect.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16016
	"/ and set caret
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16017
	textView cursorToCharacterPosition:selStart + 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16018
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16019
	"/ change selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16020
	textView selectFromCharacterPosition:selStart+1 to:selEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16021
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16023
    "Created: / 15.8.1997 / 15:45:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16024
    "Modified: / 15.1.1998 / 21:55:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16025
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16026
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16027
_WTextComponentPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16028
    |textView string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16030
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16032
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16033
    jstring notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16034
	string := Java as_ST_String:jstring
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16035
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16036
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16037
    textView contents:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16039
    "Created: / 5.1.1998 / 01:28:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16040
    "Modified: / 11.12.1998 / 12:16:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16041
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16042
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16043
_WTextFieldPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16044
    |jTextFieldPeer jFrame frame editField|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16045
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16046
    jTextFieldPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16047
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16048
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16049
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16051
    editField := EditField in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16052
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16053
    self createdWindowsView:editField for:jTextFieldPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16055
    editField crAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16056
			jTextFieldPeer perform:#handleAction.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16057
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16058
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16059
	'WTextFieldPeer_create: ' print. frame print. ' -> ' print. editField printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16060
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16062
    "Created: / 5.1.1998 / 01:27:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16063
    "Modified: / 4.11.1998 / 21:07:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16064
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16065
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16066
_WTextFieldPeer_setEchoCharacter:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16067
    |editField char|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16069
    editField := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16071
    char := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16072
    editField passwordCharacter:(Character value:char).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16074
    "Created: / 25.1.1998 / 16:28:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16075
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16077
_WToolkit_beep:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16078
    "/ void beep ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16080
    Screen current beep
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16082
    "Created: / 12.11.1998 / 19:09:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16083
    "Modified: / 11.12.1998 / 12:15:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16084
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16085
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16086
_WToolkit_eventLoop:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16087
    (JavaEventThread notNil and:[JavaEventThread isDead not]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16088
	'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16089
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16090
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16091
    JavaEventThread := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16092
    [
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16093
	[true] whileTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16094
	    AbortSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16095
		ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16096
	    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16097
		self doWindowsEventThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16098
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16099
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16100
    ] valueNowOrOnUnwindDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16101
	JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16102
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16103
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16104
    "Created: / 6.1.1998 / 21:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16105
    "Modified: / 8.1.1999 / 17:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16106
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16108
_WToolkit_getComboHeightOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16109
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16111
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16112
    "Created: / 22.10.1998 / 00:59:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16113
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16115
_WToolkit_getScreenHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16116
    ^ Screen current height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16118
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16119
    "Created: / 13.1.1998 / 09:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16120
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16122
_WToolkit_getScreenResolution:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16123
    ^ Screen current resolution x rounded
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16125
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16126
    "Created: / 17.1.1998 / 21:54:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16127
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16129
_WToolkit_getScreenWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16130
    ^ Screen current width
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16131
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16132
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16133
    "Created: / 13.1.1998 / 09:24:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16134
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16136
_WToolkit_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16138
    "Created: / 3.1.1998 / 02:30:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16139
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16141
_WToolkit_loadSystemColors:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16142
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16144
    "Modified: / 18.3.1997 / 18:43:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16145
    "Created: / 5.1.1998 / 02:19:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16146
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16148
_WToolkit_makeColorModel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16149
    "/ java.awt.image.ColorModel makeColorModel ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16150
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16151
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16152
    "Created: / 12.11.1998 / 19:08:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16153
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16155
_WToolkit_sync:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16156
    "/ void sync ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16157
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16159
    "Created: / 12.11.1998 / 19:09:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16160
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16162
_WWindowPeer__setResizable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16163
    |view onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16165
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16166
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16167
    onOff := (nativeContext argAt:1) == 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16168
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16169
	onOff ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16170
	    view minExtent:10@10.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16171
	    view maxExtent:(Screen current extent).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16172
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16173
	    view minExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16174
	    view maxExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16175
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16176
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16177
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16178
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16179
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16180
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16181
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16182
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16184
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16186
    "Created: / 5.1.1998 / 00:57:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16187
    "Modified: / 16.1.1998 / 18:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16188
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16190
_WWindowPeer__setTitle:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16191
    |view jString string|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16193
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16194
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16195
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16196
    string := Java as_ST_String:jString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16198
"/ 'JAVA: WWindowPeer_pSetTitle: ' print. string print. ' ' print. view printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16200
    view label:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16201
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16203
    "Created: / 5.1.1998 / 00:57:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16204
    "Modified: / 8.1.1998 / 17:37:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16205
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16207
_WWindowPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16208
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16209
    |jWindowPeer jWindow top window pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16211
    jWindowPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16212
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16213
    jWindow := jWindowPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16214
    window := jWindowPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16215
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16216
    (window notNil and:[window ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16217
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16218
	    'JAVA: window view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16219
	    jWindowPeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16220
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16221
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16222
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16223
"/        window := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16224
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16225
"/        JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16227
	window := JavaPopUpView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16228
	window borderWidth:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16229
	window level:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16230
	window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16231
	window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16232
	self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16233
	JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16235
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16236
"/        window := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16237
"/        window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16238
"/        window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16239
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16240
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16241
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16242
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16244
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16245
	'JAVA: WWindowPeer_create: ' print. jWindowPeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16246
	' window: ' print. window printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16247
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16249
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16250
    "Modified: / 4.12.1998 / 17:37:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16251
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16252
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16253
_WWindowPeer_getContainerElement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16254
    "/ java.awt.Component getContainerElement (java.awt.Container int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16255
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16257
    "Created: / 12.11.1998 / 19:10:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16258
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16260
_WWindowPeer_toBack:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16261
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16263
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16264
    view lower.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16266
    "Created: / 7.5.1998 / 00:23:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16267
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16269
_WWindowPeer_toFront:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16270
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16272
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16273
    view raise.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16274
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16275
    "Created: / 9.4.1998 / 22:17:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16276
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16278
_WWindowPeer_updateInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16279
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16281
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16282
    "Created: / 4.1.1998 / 18:09:04 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16283
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16285
_Win32Process_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16286
    "really create a win32 process"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16288
    |env cmd jProcess p inPipe outPipe errorPipe|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16290
    jProcess := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16291
    cmd := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16292
    cmd := Java as_ST_String:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16294
    env := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16295
    env notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16296
	self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16297
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16298
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16299
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16300
    p := Win32Process new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16301
    p command:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16302
    p environment:env.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16303
    p inStream:inPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16304
    p outStream:outPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16305
    p errorStream:errorPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16306
    p directory:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16307
    p startProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16308
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16310
    jProcess instVarNamed:'handle' put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16311
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16312
    "Created: / 10.11.1998 / 19:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16313
    "Modified: / 10.11.1998 / 21:34:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16314
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16315
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16316
_X11FontMetrics_getMFCharSegmentWidth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16317
    "get multi-font string-segment width.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16318
     Not yet supported - use standard strings width"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16319
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16320
    |jMetrics jFont jFontDescr stFont w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16321
     bool1 cp offs lenght bp int1|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16323
    jMetrics := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16324
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16325
    jFontDescr := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16326
    cp := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16327
    lenght := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16329
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16330
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16331
        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16332
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16334
    stFont device isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16335
        stFont := stFont on:Display.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16336
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16337
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16338
    w := stFont widthOf:cp from:1 to:lenght.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16339
    ^ w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16340
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16342
_X11FontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16343
    ^ self _WFontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16344
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16346
_X11GraphicsDevice_getConfigType:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16347
    "/ new with jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16348
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16349
    |configNr cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16350
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16351
    "/ for now, only one config.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16352
    configNr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16354
    cls := Java classNamed:'java.awt.GraphicsDevice'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16355
    ^ cls instVarNamed:'TYPE_RASTER_SCREEN'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16357
    "Created: / 28.1.1998 / 22:19:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16358
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16359
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16360
_X11GraphicsDevice_getNumConfigs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16361
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16363
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16364
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16365
    "Created: / 28.1.1998 / 22:13:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16366
    "Modified: / 28.1.1998 / 22:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16367
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16369
_X11GraphicsEnvironment_getNumScreens:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16370
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16371
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16372
    "/ could return the actual number of screens ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16374
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16375
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16376
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16377
    "Modified: / 28.1.1998 / 22:12:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16378
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16379
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16380
_X11GraphicsEnvironment_initDisplay:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16381
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16382
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16383
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16384
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16385
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16386
_X11Graphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16387
    ^ self _WGraphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16388
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16389
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16390
_X11Graphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16391
    ^ self _WGraphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16392
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16394
_X11Graphics_disposeImpl:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16395
    ^ self _WGraphics_dispose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16396
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16398
_X11Graphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16399
    ^ self _WGraphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16400
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16401
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16402
_X11Graphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16403
    ^ self _WGraphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16404
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16405
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16406
_X11Graphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16407
    ^ self _WGraphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16408
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16409
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16410
_X11Graphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16411
    ^ self _WGraphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16412
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16413
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16414
_X11Graphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16415
    ^ self _WGraphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16416
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16418
_X11Graphics_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16419
    ^ self _WGraphics_pSetForeground:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16420
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16421
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16422
!JavaVM class methodsFor:'native - old-style (converted)'!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16423
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16424
_FileInputStream_skip:nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16425
    "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16426
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16427
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16428
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16429
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16430
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16431
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16432
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16433
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16434
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16435
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16436
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16437
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16438
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16439
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16440
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16441
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16442
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16443
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16444
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16445
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16446
! !
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16447
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16448
!JavaVM class methodsFor:'native - stx.libjava'!
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16449
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16450
_stx_libjava_ClassLoader_findClassS: nativeContext
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16451
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16452
    <javanative: 'stx/libjava/ClassLoader' name: 'findCla'>
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16453
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16454
    | nm cls |
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16455
    nm := Java as_ST_String: (nativeContext argAt: 1).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16456
    (nm startsWith: 'SMALLTALK.') ifFalse:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16457
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16458
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16459
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16460
    nm := nm copyFrom: 'SMALLTALK.' size + 1.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16461
    cls := Smalltalk at: nm asSymbol.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16462
    cls isNil ifTrue:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16463
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16464
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16465
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16466
    ^Reflection javaClassObjectForClass: cls.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16467
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16468
    "Modified: / 30-07-2012 / 23:19:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16469
! !
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16470
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16471
!JavaVM class methodsFor:'native - stx.libjava.groovy'!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16472
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16473
_stx_libjava_groovy_GroovyClassLoader_SystemClassCollector_getDefiningClassLoader: nativeContext
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16474
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16475
    <javanative: 'stx/libjava/groovy/GroovyClassLoader$SystemClassCollector' name: 'getDefiningClassLoader()Lstx/libjava/groovy/GroovyClassLoader;'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16476
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16477
    ^ SystemClassLoader
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16478
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16479
    "Modified: / 20-02-2012 / 22:30:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16480
! !
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16481
1090
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16482
!JavaVM class methodsFor:'native - stx.libjava.tests'!
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16483
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16484
_stx_libjava_tests_MonitorTests_abort: nativeContext
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16485
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16486
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16487
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16488
    AbortOperationRequest raiseRequest.
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16489
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16490
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16491
! !
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16492
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16493
!JavaVM class methodsFor:'native - stx.libjava.tests.lang'!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16494
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16495
_stx_libjava_tests_lang_MonitorTests_abort: nativeContext
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16496
    <javanative: 'stx/libjava/tests/lang/MonitorTests' name: 'abort()V'>
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16497
        AbortOperationRequest raiseRequest.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16498
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16499
    "Modified: / 10-09-2012 / 22:56:16 / m"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16500
! !
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 16501
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16502
!JavaVM class methodsFor:'native - stx.libjava.tests.vm'!
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16503
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16504
_stx_libjava_tests_vm_XLOAD_forcePatchupAndUnfix: nativeContext
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16505
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16506
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16507
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16508
    | ctx |
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16509
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16510
    ctx := thisContext.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16511
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16512
    ObjectMemory garbageCollect.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16513
    [ ctx notNil ] whileTrue:[
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16514
        1 to: ctx size do:[:i|
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16515
                Transcript showCR: i printString , ' -> ', (ctx at: i) printString.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16516
        ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16517
        ctx := ctx sender.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16518
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16519
    ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16520
    ObjectMemory garbageCollect.
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16521
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16522
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16523
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16524
! !
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 16525
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16526
!JavaVM class methodsFor:'native - sun.font'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16527
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16528
_sun_font_FontManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16529
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16530
    <javanative: 'sun/font/FontManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16531
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16532
    "Modified: / 09-02-2012 / 22:56:51 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16533
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16534
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16535
_sun_font_FreetypeFontScaler_initIDs: nativeContext
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16536
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16537
    <javanative: 'sun/font/FreetypeFontScaler' name: 'initIDs(Ljava/lang/Class;)V'>
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16538
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16539
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16540
!
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16541
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16542
_sun_font_StrikeCache_getGlyphCacheDescription: nativeContext
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16543
    <javanative: 'sun/font/StrikeCache' name: 'getGlyphCacheDescription([J)V'>
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16544
    (nativeContext argAt:1) at: 1 put: 4.
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16545
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16546
    "Modified: / 09-02-2012 / 22:57:08 / mh <hlopik@gmail.com>"
1808
5ea90cae2207 - JavaVM
hlopkmar
parents: 1793
diff changeset
 16547
    "Modified: / 05-11-2012 / 17:07:52 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16548
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16549
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16550
!JavaVM class methodsFor:'native - sun.io'!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16551
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16552
_sun_io_Win32ErrorMode_setErrorMode: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16553
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16554
    <javanative: 'sun/io/Win32ErrorMode' name: 'setErrorMode(J)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16555
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16556
    "FIXME: Ignored for now"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16557
    ^0
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16558
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16559
    "Modified (format): / 14-08-2012 / 11:35:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16560
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16561
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16562
!JavaVM class methodsFor:'native - sun.java2d'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16563
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16564
_sun_java2d_Disposer_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16565
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16566
    <javanative: 'sun/java2d/Disposer' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16567
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16568
    "Modified: / 09-02-2012 / 22:54:59 / mh <hlopik@gmail.com>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16569
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16570
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16571
!JavaVM class methodsFor:'native - sun.java2d.cmm.lcms'!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16572
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16573
_sun_java2d_cmm_lcms_LCMS_getTagData: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16574
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16575
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagData(JI[B)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16576
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16577
    | profileId tag data |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16578
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16579
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16580
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16581
    data := nativeContext argAt: 4.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16582
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16583
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16584
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16585
    tag = 1751474532 ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16586
        data replaceBytesFrom:1
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16587
                with:#[0  3  146  96  108  99  109  115  4  0  0  0  115  112  97  99  51  67  76  82  88  89  90  32  7  216  0  4  0  10  0  10  0  24  0  22  97  99  115  112  65  80  80  76  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  1  0  0  0  1  0  0  246  214  0  1  0  0  0  0  211  45  108  99  109  115  240  231  92  85  210  30  77  140  137  67  22  250  239  246  146  191  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16588
                startingAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16589
        ^self.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16590
    ].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16591
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16592
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16593
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16594
    "Modified: / 18-04-2012 / 08:29:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16595
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16596
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16597
_sun_java2d_cmm_lcms_LCMS_getTagSize: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16598
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16599
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagSize(JI)I'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16600
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16601
    | profileId tag |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16602
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16603
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16604
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16605
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16606
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16607
    "Magic numbers based on trace of real Java code"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16608
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16609
    tag = 1751474532 ifTrue:[ ^ 128 ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16610
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16611
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16612
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16613
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16614
    ^128 "Some magic default"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16615
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16616
    "Modified: / 18-04-2012 / 08:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16617
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16618
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16619
_sun_java2d_cmm_lcms_LCMS_initLCMS: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16620
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16621
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'initLCMS(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16622
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16623
    "Nothing to do"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16624
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16625
    "Modified: / 09-12-2011 / 18:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16626
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16627
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16628
_sun_java2d_cmm_lcms_LCMS_loadProfile: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16629
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16630
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'loadProfile([B)J'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16631
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16632
    "FAKE, return some magic"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16633
    ^12344321
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16634
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16635
    "Modified: / 09-12-2011 / 18:56:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16636
! !
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16637
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16638
!JavaVM class methodsFor:'native - sun.java2d.pipe'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16639
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16640
_sun_java2d_pipe_Region_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16641
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16642
    <javanative: 'sun/java2d/pipe/Region' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16643
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16644
    "Modified: / 09-02-2012 / 22:55:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16645
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16646
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16647
!JavaVM class methodsFor:'native - sun.management'!
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16648
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16649
_sun_management_MemoryImpl_getMemoryManagers0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16650
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16651
    <javanative: 'sun/management/MemoryImpl' name: 'getMemoryManagers0()[Ljava/lang/management/MemoryManagerMXBean;'>
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16652
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16653
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16654
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16655
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16656
    beanCls := self classForName: 'java.lang.management.MemoryManagerMXBean'.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16657
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16658
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16659
    "Modified: / 04-12-2011 / 19:57:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16660
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16661
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16662
_sun_management_MemoryImpl_getMemoryPools0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16663
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16664
    <javanative: 'sun/management/MemoryImpl' name: 'getMemoryPools0()[Ljava/lang/management/MemoryPoolMXBean;'>
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16665
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16666
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16667
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16668
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16669
    beanCls := self classForName: 'java.lang.management.MemoryPoolMXBean'.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16670
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16671
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16672
    "Modified: / 04-12-2011 / 19:58:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16673
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16674
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16675
_sun_management_VMManagementImpl_getStartupTime: nativeContext
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16676
    <javanative: 'sun/management/VMManagementImpl' name: 'getStartupTime()J'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16677
    ^ StartupTime.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16678
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16679
    "Modified: / 03-11-2011 / 19:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16680
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16681
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16682
_sun_management_VMManagementImpl_getVersion0: nativeContext
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16683
    <javanative: 'sun/management/VMManagementImpl' name: 'getVersion0'>
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16684
    ^ Java as_String: '1.2'.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16685
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16686
    "Modified: / 03-11-2011 / 18:42:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16687
!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16688
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16689
_sun_management_VMManagementImpl_initOptionalSupportFields: nativeContext
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16690
    <javanative: 'sun/management/VMManagementImpl' name: 'initOptionalSupportFields()V'>
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16691
    | cls |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16692
    cls := nativeContext receiver.
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16693
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16694
    cls instVarNamed: #compTimeMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16695
    cls instVarNamed: #threadContentionMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16696
    cls instVarNamed: #currentThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16697
    cls instVarNamed: #otherThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16698
    cls instVarNamed: #bootClassPathSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16699
    cls instVarNamed: #synchronizerUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16700
    cls instVarNamed: #objectMonitorUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16701
    ^ self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16702
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16703
    "Modified: / 13-12-2011 / 14:35:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16704
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16705
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16706
_sun_management_VMManagementImpl_isThreadCpuTimeEnabled: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16707
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16708
    <javanative: 'sun/management/VMManagementImpl' name: 'isThreadCpuTimeEnabled()Z'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16709
1083
vranyj1
parents: 1081
diff changeset
 16710
    ^ 0 "/false should be safe, we'll see...
vranyj1
parents: 1081
diff changeset
 16711
vranyj1
parents: 1081
diff changeset
 16712
    "Modified: / 03-11-2011 / 22:45:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16713
! !
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16714
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16715
!JavaVM class methodsFor:'native - sun.misc'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16716
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16717
_sun_misc_GC_maxObjectInspectionAge: nativeContext
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16718
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16719
    <javanative: 'sun/misc/GC' name: 'maxObjectInspectionAge()J'>
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16720
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16721
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16722
    /**
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16723
     * Returns the maximum <em>object-inspection age</em>, which is the number
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16724
     * of real-time milliseconds that have elapsed since the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16725
     * least-recently-inspected heap object was last inspected by the garbage
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16726
     * collector.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16727
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16728
     * <p> For simple stop-the-world collectors this value is just the time
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16729
     * since the most recent collection.  For generational collectors it is the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16730
     * time since the oldest generation was most recently collected.  Other
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16731
     * collectors are free to return a pessimistic estimate of the elapsed
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16732
     * time, or simply the time since the last full collection was performed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16733
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16734
     * <p> Note that in the presence of reference objects, a given object that
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16735
     * is no longer strongly reachable may have to be inspected multiple times
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16736
     * before it can be reclaimed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16737
     */
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16738
    public static native long maxObjectInspectionAge();
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16739
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16740
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16741
    ^Random nextIntegerBetween: 0 and: 3600. "Just return some number"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16742
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16743
    "Modified: / 02-12-2011 / 21:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16744
!
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16745
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16746
_sun_misc_Signal_findSignal: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16747
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16748
    <javanative: 'sun/misc/Signal' name: 'findSignal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16749
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16750
        | input signame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16752
    input := Java as_ST_String: (aJavaContext argAt: 1).
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16753
    OperatingSystem isUNIXlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16754
        signame := 'SIG', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16755
        ^UnixOperatingSystem signalNamed: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16756
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16757
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16758
        signame := 'sig', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16759
        ^Win32OperatingSystem perform: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16760
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16761
    self error: 'Unsupported OS'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16762
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16763
    "Created: / 11-12-2010 / 15:22:07 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16764
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16765
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16766
_sun_misc_Signal_handle0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16768
    <javanative: 'sun/misc/Signal' name: 'handle0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16769
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16770
        self breakPoint: #libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16771
    ^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16772
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16773
    "Created: / 11-12-2010 / 16:33:38 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16774
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16775
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16776
_sun_misc_Unsafe_addressSize: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16777
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16778
    <javanative: 'sun/misc/Unsafe' name: 'addressSize()I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16779
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16780
    ^ExternalAddress pointerSize
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16781
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16782
    "Modified: / 10-07-2012 / 01:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16783
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16784
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16785
_sun_misc_Unsafe_allocateInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16786
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16787
    <javanative: 'sun/misc/Unsafe' name: 'allocateInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16788
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16789
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16790
    /** Allocate an instance but do not run any constructor.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16791
        Initializes the class if it has not yet been. */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16792
    public native Object allocateInstance(Class cls)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16793
        throws InstantiationException;
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16794
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16795
    | cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16796
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16797
    cls classInit.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16798
    ^cls newCleared
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16799
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16800
    "Created: / 05-02-2011 / 23:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16801
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16802
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16803
_sun_misc_Unsafe_allocateMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16804
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16805
    <javanative: 'sun/misc/Unsafe' name: 'allocateMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16806
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16807
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16808
    | size |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16809
    size := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16810
    ^SimulatedNativeMemory malloc: size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16812
    "Created: / 07-12-2010 / 21:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16813
    "Modified: / 07-12-2010 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16814
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16815
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16816
_sun_misc_Unsafe_arrayBaseOffset: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16817
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16818
    <javanative: 'sun/misc/Unsafe' name: 'arrayBaseOffset'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16819
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16820
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16821
    * Report the offset of the first element in the storage allocation of a
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16822
    * given array class.  If {@link #arrayIndexScale} returns a non-zero value
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16823
    * for the same class, you may use that scale factor, together with this
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16824
    * base offset, to form new offsets to access elements of arrays of the
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16825
    * given class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16826
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16827
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16828
    * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16829
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16830
    public native int arrayBaseOffset(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16831
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16832
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16833
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16834
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16835
    "Modified (comment): / 10-08-2011 / 01:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16836
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16837
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16838
_sun_misc_Unsafe_arrayIndexScale: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16839
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16840
    <javanative: 'sun/misc/Unsafe' name: 'arrayIndexScale'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16841
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16842
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16843
      /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16844
      * Report the scale factor for addressing elements in the storage
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16845
      * allocation of a given array class.  However, arrays of 'narrow' types
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16846
      * will generally not work properly with accessors like {@link
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16847
      * #getByte(Object, int)}, so the scale factor for such classes is reported
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16848
      * as zero.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16849
      *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16850
      * @see #arrayBaseOffset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16851
      * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16852
      * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16853
      */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16854
    public native int arrayIndexScale(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16855
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16856
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16857
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16858
    "Modified: / 10-08-2011 / 01:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16859
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16860
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16861
_sun_misc_Unsafe_compareAndSwapInt: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16862
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16863
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16864
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16865
    ^self _sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16866
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16867
    "Created: / 22-11-2010 / 18:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16868
    "Modified: / 07-08-2011 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16869
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16870
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16871
_sun_misc_Unsafe_compareAndSwapLong: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16872
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16873
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapLong'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16874
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16875
        "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16876
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16877
     * Atomically update Java variable to <tt>x</tt> if it is currently
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16878
     * holding <tt>expected</tt>.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16879
     * @return <tt>true</tt> if successful
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16880
     */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16881
    public final native boolean compareAndSwapInt(Object o, long offset,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16882
                                                  long expected,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16883
                                                  long new);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16884
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16885
    | o offset expected real new ok |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16886
    o := aJavaContext argAt:1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16887
    offset := aJavaContext argAt:2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16888
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16889
    expected := aJavaContext argAt:4.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16890
    new := aJavaContext argAt:6.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16891
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16892
    OperatingSystem blockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16893
    real := o instVarAt: offset.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16894
    (real == expected)
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16895
            ifTrue:[o instVarAt: offset put: new. ok := 1]
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16896
            ifFalse:[ok := 1].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16897
    OperatingSystem unblockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16898
    ^ok
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16899
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16900
    "Modified: / 18-10-2011 / 21:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16901
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16902
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16903
_sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16904
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16905
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16906
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16907
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16908
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16909
     * Atomically update Java variable to <tt>x</tt> if it is currently
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16910
     * holding <tt>expected</tt>.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16911
     * @return <tt>true</tt> if successful
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16912
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16913
    public final native boolean compareAndSwapInt(Object o, long offset,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16914
                                                  int expected,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16915
                                                  int new);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16916
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16917
    | o offset expected real new ok |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16918
    o := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16919
    offset := aJavaContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16920
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16921
    expected := aJavaContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16922
    new := aJavaContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16924
    OperatingSystem blockInterrupts.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16925
    o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16926
        real := o at: offset.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16927
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16928
        real := o instVarAt: offset.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16929
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16930
    (real == expected) ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16931
        o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16932
            o at: offset put: new.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16933
        ] ifFalse:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16934
            o instVarAt: offset put: new.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16935
        ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16936
        ok := 1
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16937
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16938
        ok := 0
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16939
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16940
    OperatingSystem unblockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16941
    ^ok
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16942
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 16943
    "Modified: / 03-09-2012 / 19:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16944
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16945
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16946
_sun_misc_Unsafe_copyMemory: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16947
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16948
    /**
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16949
     * Sets all bytes in a given block of memory to a copy of another
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16950
     * block.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16951
     */
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16952
    public native void copyMemory(long srcAddress, long destAddress,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16953
                                  long bytes);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16954
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16955
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16956
    <javanative: 'sun/misc/Unsafe' name: 'copyMemory(JJJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16957
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16958
    | srcAddress dstAddress bytes |
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16959
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16960
    srcAddress := nativeContext argAt:1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16961
    dstAddress := nativeContext argAt:3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16962
    bytes      := nativeContext argAt:5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16963
    SimulatedNativeMemory bcopy: srcAddress to: dstAddress length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16964
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16965
    "Modified (format): / 11-07-2012 / 10:25:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16966
!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16967
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16968
_sun_misc_Unsafe_defineClass: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16969
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16970
    <javanative: 'sun/misc/Unsafe' name: 'defineClass'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16971
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16972
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16973
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16974
     * Tell the VM to define a class, without security checks.  By default, the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16975
     * class loader and protection domain come from the caller's class.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16976
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16977
    public native Class defineClass(String name, byte[] b, int off, int len,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16978
                                    ClassLoader loader,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16979
                                    ProtectionDomain protectionDomain);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16980
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16981
    | name b off len loader protectionDomain bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16982
    name := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16983
    b := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16984
    off := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16985
    len := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16986
    loader := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16987
    protectionDomain := nativeContext argAt: 6.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16988
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 16989
    bs := (off = 0 and: [len = b size])
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16990
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16991
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16992
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16993
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16994
    cls classLoader: loader.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16995
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16996
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16997
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16998
    "Created: / 05-02-2011 / 22:57:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16999
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17000
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17001
_sun_misc_Unsafe_ensureClassInitialized: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17003
    <javanative: 'sun/misc/Unsafe' name: 'ensureClassInitialized'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17005
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17006
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17007
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17008
     "Sometimes there is a nil. I don't know why, so I did quickfix"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17009
    self breakPoint:#libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17010
    class ifNotNil:[class classInit.].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17011
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17012
    "Created: / 11-12-2010 / 15:01:36 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17013
    "Modified: / 25-12-2010 / 09:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17014
    "Modified: / 08-01-2011 / 15:11:21 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17015
    "Modified: / 28-01-2011 / 15:19:31 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17016
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17017
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17018
_sun_misc_Unsafe_freeMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17019
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17020
    <javanative: 'sun/misc/Unsafe' name: 'freeMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17021
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17022
    | address  |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17023
    address := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17024
    ^SimulatedNativeMemory free: address
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17026
    "Created: / 09-12-2010 / 17:56:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17027
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17028
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17029
_sun_misc_Unsafe_getBoolean: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17030
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17031
    <javanative: 'sun/misc/Unsafe' name: 'getBoolean(Ljava/lang/Object;J)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17032
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17033
    | o offset |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17034
    o := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17035
    offset := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17036
    ^o instVarAt: offset
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17037
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17038
    "Modified: / 19-11-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17039
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17040
1151
vranyj1
parents: 1150
diff changeset
 17041
_sun_misc_Unsafe_getByte: nativeContext
vranyj1
parents: 1150
diff changeset
 17042
vranyj1
parents: 1150
diff changeset
 17043
    <javanative: 'sun/misc/Unsafe' name: 'getByte(Ljava/lang/ObjectJ)B'>
vranyj1
parents: 1150
diff changeset
 17044
    <javanative: 'sun/misc/Unsafe' name: 'getByte(J)B'>
vranyj1
parents: 1150
diff changeset
 17045
vranyj1
parents: 1150
diff changeset
 17046
    | object offset address |
vranyj1
parents: 1150
diff changeset
 17047
    nativeContext numArgs == 3 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17048
        "getByte(Ljava/lang/Object;J)V"
vranyj1
parents: 1150
diff changeset
 17049
        object := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17050
        offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17051
        ^object instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17052
    ].
vranyj1
parents: 1150
diff changeset
 17053
    nativeContext numArgs == 2 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17054
        "getByte(J)V"
vranyj1
parents: 1150
diff changeset
 17055
        address := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17056
        ^SimulatedNativeMemory byteAt: address
vranyj1
parents: 1150
diff changeset
 17057
    ].
vranyj1
parents: 1150
diff changeset
 17058
vranyj1
parents: 1150
diff changeset
 17059
    self internalError:'Unssuported getByte() variant'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17060
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17061
    "Created: / 09-12-2010 / 17:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17062
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17063
1151
vranyj1
parents: 1150
diff changeset
 17064
_sun_misc_Unsafe_getChar: nativeContext
vranyj1
parents: 1150
diff changeset
 17065
vranyj1
parents: 1150
diff changeset
 17066
    <javanative: 'sun/misc/Unsafe' name: 'getChar(Ljava/lang/Object;J)C'>
vranyj1
parents: 1150
diff changeset
 17067
vranyj1
parents: 1150
diff changeset
 17068
    | o offset |
vranyj1
parents: 1150
diff changeset
 17069
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17070
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17071
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17072
vranyj1
parents: 1150
diff changeset
 17073
    "Modified: / 22-11-2011 / 14:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17074
!
vranyj1
parents: 1150
diff changeset
 17075
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17076
_sun_misc_Unsafe_getDouble: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17077
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17078
    <javanative: 'sun/misc/Unsafe' name: 'getDouble(Ljava/lang/Object;J)D'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17079
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17080
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17081
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17082
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17083
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17084
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17085
    "Modified: / 10-05-2012 / 17:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17086
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17087
1151
vranyj1
parents: 1150
diff changeset
 17088
_sun_misc_Unsafe_getFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 17089
vranyj1
parents: 1150
diff changeset
 17090
    <javanative: 'sun/misc/Unsafe' name: 'getFloat(Ljava/lang/Object;J)F'>
vranyj1
parents: 1150
diff changeset
 17091
vranyj1
parents: 1150
diff changeset
 17092
    | o offset |
vranyj1
parents: 1150
diff changeset
 17093
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17094
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17095
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17096
vranyj1
parents: 1150
diff changeset
 17097
    "Modified: / 22-11-2011 / 14:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17098
!
vranyj1
parents: 1150
diff changeset
 17099
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17100
_sun_misc_Unsafe_getFloatVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17101
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17102
    <javanative: 'sun/misc/Unsafe' name: 'getFloatVolatile(Ljava/lang/Object;J)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17103
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17104
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17105
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17106
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17107
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17108
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17109
    "Modified: / 10-05-2012 / 17:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17110
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17111
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17112
_sun_misc_Unsafe_getInt: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17113
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17114
    <javanative: 'sun/misc/Unsafe' name: 'getInt'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17115
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17116
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17117
    * Fetches a integer value from a given Java variable.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17118
    */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17119
    public native int getInt(Object o, long offset);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17120
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17121
    | o offset |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17122
    o := nativeContext argAt: 1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17123
    offset := nativeContext argAt: 2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17124
    ^o instVarAt: offset
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17125
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 17126
    "Modified: / 18-10-2011 / 20:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17127
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17128
1433
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17129
_sun_misc_Unsafe_getIntVolatile: nativeContext
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17130
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17131
    <javanative: 'sun/misc/Unsafe' name: 'getIntVolatile(Ljava/lang/Object;J)I'>
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17132
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17133
    | o offset |
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17134
    o := nativeContext argAt: 1.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17135
    offset := nativeContext argAt: 2.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17136
    ^o instVarAt: offset
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17137
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17138
    "Modified: / 28-03-2012 / 15:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17139
!
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 17140
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17141
_sun_misc_Unsafe_getLong: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17142
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17143
    <javanative: 'sun/misc/Unsafe' name: 'getLong(Ljava/lang/Object;J)J'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17144
1680
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17145
    | o offset |
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17146
    o := nativeContext argAt: 1.
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17147
    offset := nativeContext argAt: 2.
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17148
    ^o instVarAt: offset
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17149
72698b64f6fe Added new native (getLong)
vranyj1
parents: 1677
diff changeset
 17150
    "Modified: / 25-08-2012 / 11:15:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17151
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17152
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17153
_sun_misc_Unsafe_getLongVolatile: nativeContext
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17154
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17155
    <javanative: 'sun/misc/Unsafe' name: 'getLongVolatile(Ljava/lang/Object;J)J'>
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17156
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17157
    | o offset |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17158
    o := nativeContext argAt: 1.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17159
    offset := nativeContext argAt: 2.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17160
    ^o instVarAt: offset
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17161
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17162
    "Modified: / 31-08-2011 / 23:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17163
!
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17164
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17165
_sun_misc_Unsafe_getObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17166
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17167
    <javanative: 'sun/misc/Unsafe' name: 'getObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17168
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17169
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17170
    * Fetches a reference value from a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17171
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17172
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17173
    public native Object getObject(Object o, long offset);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17174
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17175
    | o offset |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17176
    o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17177
    offset := nativeContext argAt: 2.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17178
    ^o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17179
        o at: offset
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17180
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17181
        o instVarAt: offset
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17182
    ]
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17183
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17184
    "Modified: / 03-09-2012 / 19:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17185
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17186
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17187
_sun_misc_Unsafe_getObjectVolatile: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17188
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17189
    <javanative: 'sun/misc/Unsafe' name: 'getObjectVolatile(Ljava/lang/Object;J)Ljava/lang/Object;'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17190
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17191
    /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17192
    * Fetches a reference value from a given Java variable, with volatile
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17193
    * load semantics. Otherwise identical to {@link #getObject(Object, long)}
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17194
    */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17195
    public native Object getObjectVolatile(Object o, long offset);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17196
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17197
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17198
    ^self _sun_misc_Unsafe_getObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17199
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17200
    "Modified: / 03-09-2012 / 19:00:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17201
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17202
1151
vranyj1
parents: 1150
diff changeset
 17203
_sun_misc_Unsafe_getShort: nativeContext
vranyj1
parents: 1150
diff changeset
 17204
vranyj1
parents: 1150
diff changeset
 17205
    <javanative: 'sun/misc/Unsafe' name: 'getShort(Ljava/lang/Object;J)S'>
vranyj1
parents: 1150
diff changeset
 17206
vranyj1
parents: 1150
diff changeset
 17207
    | o offset |
vranyj1
parents: 1150
diff changeset
 17208
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17209
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17210
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 17211
vranyj1
parents: 1150
diff changeset
 17212
    "Modified: / 22-11-2011 / 14:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17213
!
vranyj1
parents: 1150
diff changeset
 17214
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17215
_sun_misc_Unsafe_getShortVolatile: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17216
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17217
    <javanative: 'sun/misc/Unsafe' name: 'getShortVolatile(Ljava/lang/Object;J)S'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17218
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17219
    | o offset |
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17220
    o := nativeContext argAt: 1.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17221
    offset := nativeContext argAt: 2.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17222
    ^o instVarAt: offset
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17223
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17224
    "Modified: / 29-06-2012 / 19:05:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17225
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 17226
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17227
_sun_misc_Unsafe_objectFieldOffset: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17229
    <javanative: 'sun/misc/Unsafe' name: 'objectFieldOffset'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17230
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17231
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17232
    | javaFieldObject |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17233
    javaFieldObject := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17234
    ^javaFieldObject instVarNamed: #slot
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17236
    "Created: / 22-11-2010 / 17:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17237
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17238
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17239
_sun_misc_Unsafe_pageSize: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17240
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17241
    <javanative: 'sun/misc/Unsafe' name: 'pageSize'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17242
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17243
    ^ 4096"4K is the page size on x86, I think... "
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17244
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17245
    "Modified: / 25-11-2011 / 19:24:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17246
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17247
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17248
_sun_misc_Unsafe_park: nativeContext
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17249
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17250
    <javanative: 'sun/misc/Unsafe' name: 'park(ZJ)V'>
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17251
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17252
    /**
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17253
     * Block current thread, returning when a balancing
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17254
     * <tt>unpark</tt> occurs, or a balancing <tt>unpark</tt> has
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17255
     * already occurred, or the thread is interrupted, or, if not
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17256
     * absolute and time is not zero, the given time nanoseconds have
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17257
     * elapsed, or if absolute, the given deadline in milliseconds
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17258
     * since Epoch has passed, or spuriously (i.e., returning for no
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17259
     * 'reason'). Note: This operation is in the Unsafe class only
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17260
     * because <tt>unpark</tt> is, so it would be strange to place it
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17261
     * elsewhere.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17262
     */
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17263
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17264
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17265
    | absolute millis tout process |
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17266
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17267
    absolute := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17268
    millis := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17269
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17270
    millis ~~ 0 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17271
        absolute == 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17272
            tout := millis - OperatingSystem getOSTime.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17273
            tout < 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17274
                tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17275
            ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17276
        ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17277
            tout := millis.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17278
        ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17279
    ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17280
        tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17281
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17282
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17283
    process := Processor activeProcess.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17284
    self park: process timeout: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17285
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17286
    "Modified: / 16-08-2012 / 21:52:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17287
!
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17288
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17289
_sun_misc_Unsafe_putBoolean: nativeContext
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17290
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17291
    <javanative: 'sun/misc/Unsafe' name: 'putBoolean(Ljava/lang/Object;JZ)V'>
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17292
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17293
    "Like putInt:, see _sun_misc_Unsafe_putInt:"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17294
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17295
    | o offset x |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17296
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17297
    o := nativeContext argAt: 1.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17298
    offset := nativeContext argAt: 2.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17299
    x := nativeContext argAt: 4.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17300
    ^o instVarAt: offset put: x.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17301
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17302
    "Modified: / 27-10-2011 / 16:23:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17303
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17304
1151
vranyj1
parents: 1150
diff changeset
 17305
_sun_misc_Unsafe_putByte: nativeContext
vranyj1
parents: 1150
diff changeset
 17306
vranyj1
parents: 1150
diff changeset
 17307
    <javanative: 'sun/misc/Unsafe' name: 'putByte(Ljava/lang/Object;JB)V'>
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17308
    <javanative: 'sun/misc/Unsafe' name: 'putByte(JB)V'>
1151
vranyj1
parents: 1150
diff changeset
 17309
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17310
    nativeContext selector == #'putByte(JB)V' ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17311
        | address value |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17312
        address := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17313
        value := nativeContext argAt: 3.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17314
        SimulatedNativeMemory byteAt: address put: (value bitAnd: 16rFF).
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17315
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17316
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17317
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17318
    nativeContext selector = #'putByte(Ljava/lang/Object;JB)V' ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17319
        | o offset x |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17320
        o := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17321
        offset := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17322
        x := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17323
        ^o instVarAt: offset put: x.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17324
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17325
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17326
    self shouldNotImplement
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17327
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17328
    "Modified: / 31-07-2012 / 11:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17329
!
vranyj1
parents: 1150
diff changeset
 17330
vranyj1
parents: 1150
diff changeset
 17331
_sun_misc_Unsafe_putChar: nativeContext
vranyj1
parents: 1150
diff changeset
 17332
vranyj1
parents: 1150
diff changeset
 17333
    <javanative: 'sun/misc/Unsafe' name: 'putChar(Ljava/lang/Object;JC)V'>
vranyj1
parents: 1150
diff changeset
 17334
vranyj1
parents: 1150
diff changeset
 17335
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17336
vranyj1
parents: 1150
diff changeset
 17337
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17338
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17339
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17340
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17341
vranyj1
parents: 1150
diff changeset
 17342
    "Modified: / 22-11-2011 / 14:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17343
!
vranyj1
parents: 1150
diff changeset
 17344
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17345
_sun_misc_Unsafe_putDouble: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17346
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17347
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17348
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17349
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17350
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17351
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17352
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17353
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17354
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17355
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17356
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17357
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17358
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17359
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17360
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17361
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17362
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17363
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17364
        SimulatedNativeMemory doubleAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17365
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17366
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17367
    self internalError:'Unknown variant of putDouble() native!!'
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17368
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17369
    "Modified: / 30-08-2011 / 15:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17370
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17371
1151
vranyj1
parents: 1150
diff changeset
 17372
_sun_misc_Unsafe_putFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 17373
vranyj1
parents: 1150
diff changeset
 17374
    <javanative: 'sun/misc/Unsafe' name: 'putFloat(Ljava/lang/Object;JF)V'>
vranyj1
parents: 1150
diff changeset
 17375
vranyj1
parents: 1150
diff changeset
 17376
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17377
vranyj1
parents: 1150
diff changeset
 17378
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17379
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17380
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17381
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17382
vranyj1
parents: 1150
diff changeset
 17383
    "Modified: / 22-11-2011 / 14:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17384
!
vranyj1
parents: 1150
diff changeset
 17385
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17386
_sun_misc_Unsafe_putInt: nativeContext
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17387
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17388
    <javanative: 'sun/misc/Unsafe' name: 'putInt'>
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17389
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17390
    /**
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17391
     * Stores a value into a given Java variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17392
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17393
     * The first two parameters are interpreted exactly as with
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17394
     * {@link #getInt(Object, long)} to refer to a specific
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17395
     * Java variable (field or array element).  The given value
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17396
     * is stored into that variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17397
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17398
     * The variable must be of the same type as the method
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17399
     * parameter <code>x</code>.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17400
     *
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17401
     * @param o Java heap object in which the variable resides, if any, else
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17402
     *        null
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17403
     * @param offset indication of where the variable resides in a Java heap
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17404
     *        object, if any, else a memory address locating the variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17405
     *        statically
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17406
     * @param x the value to store into the indicated Java variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17407
     * @throws RuntimeException No defined exceptions are thrown, not even
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17408
     *         {@link NullPointerException}
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17409
     */
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17410
    public native void putInt(Object o, long offset, int x);
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17411
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17412
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17413
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17414
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17415
    o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17416
    offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17417
    x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17418
    ^o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17419
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17420
    "Modified: / 30-08-2011 / 15:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17421
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17422
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17423
_sun_misc_Unsafe_putLong: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17424
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17425
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17426
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17427
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17428
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17429
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17430
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17431
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17432
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17433
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17434
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17435
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17436
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17437
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17438
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17439
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17440
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17441
        x := nativeContext argAt: 3.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17442
        SimulatedNativeMemory sint64At: o put: x.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17443
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17444
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17445
    self internalError:'Unknown variant of putLong() native!!'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17447
    "Created: / 07-12-2010 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17448
    "Modified: / 16-07-2012 / 16:03:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17449
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17450
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17451
_sun_misc_Unsafe_putObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17452
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17453
    <javanative: 'sun/misc/Unsafe' name: 'putObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17454
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17455
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17456
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17457
     * Stores a reference value into a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17458
     * <p>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17459
     * Unless the reference <code>x</code> being stored is either null
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17460
     * or matches the field type, the results are undefined.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17461
     * If the reference <code>o</code> is non-null, car marks or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17462
     * other store barriers for that object (if the VM requires them)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17463
     * are updated.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17464
     * @see #putInt(Object, int, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17465
     */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17466
     public native void putObject(Object o, long offset, Object x);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17467
     "
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17468
    | o offset x |
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17469
    o := nativeContext argAt: 1.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17470
    offset := nativeContext argAt: 2.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17471
    x := nativeContext argAt: 4.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17472
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17473
    ^o isArray ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17474
        o at: offset put: x
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17475
    ] ifFalse:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17476
        o instVarAt: offset put: x.
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17477
    ].
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17478
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17479
    "Modified: / 03-09-2012 / 18:59:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17480
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17481
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17482
_sun_misc_Unsafe_putObjectVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17483
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17484
    <javanative: 'sun/misc/Unsafe' name: 'putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17485
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17486
    ^self _sun_misc_Unsafe_putObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17487
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17488
    "Modified: / 03-09-2012 / 18:59:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17489
!
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17490
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17491
_sun_misc_Unsafe_putOrderedObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17492
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17493
    <javanative: 'sun/misc/Unsafe' name: 'putOrderedObject(Ljava/lang/Object;JLjava/lang/Object;)V'>
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17494
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17495
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17496
    /**
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17497
     * Version of {@link #putObjectVolatile(Object, long, Object)}
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17498
     * that does not guarantee immediate visibility of the store to
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17499
     * other threads. This method is generally only useful if the
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17500
     * underlying field is a Java volatile (or if an array cell, one
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17501
     * that is otherwise only accessed using volatile accesses).
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17502
     */
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17503
    "
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17504
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17505
    ^ self _sun_misc_Unsafe_putObject: nativeContext
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17506
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 17507
    "Modified (comment): / 03-09-2012 / 18:56:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17508
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17509
1151
vranyj1
parents: 1150
diff changeset
 17510
_sun_misc_Unsafe_putShort: nativeContext
vranyj1
parents: 1150
diff changeset
 17511
vranyj1
parents: 1150
diff changeset
 17512
    <javanative: 'sun/misc/Unsafe' name: 'putShort(Ljava/lang/Object;JS)V'>
vranyj1
parents: 1150
diff changeset
 17513
vranyj1
parents: 1150
diff changeset
 17514
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17515
vranyj1
parents: 1150
diff changeset
 17516
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17517
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17518
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17519
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17520
vranyj1
parents: 1150
diff changeset
 17521
    "Modified: / 22-11-2011 / 14:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17522
!
vranyj1
parents: 1150
diff changeset
 17523
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17524
_sun_misc_Unsafe_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17525
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17526
    <javanative: 'sun/misc/Unsafe' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17527
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17528
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17529
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17530
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17531
    "Created: / 25-10-2010 / 16:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17532
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17533
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17534
_sun_misc_Unsafe_setMemory: nativeContext
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17535
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17536
    <javanative: 'sun/misc/Unsafe' name: 'setMemory(JJB)V'>
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17537
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17538
    | address bytes value|
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17539
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17540
    address := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17541
    bytes := nativeContext argAt: 3.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17542
    value := nativeContext argAt: 5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17543
    SimulatedNativeMemory memset: address value: value length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17544
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17545
    "Modified (format): / 11-07-2012 / 10:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17546
!
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17547
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17548
_sun_misc_Unsafe_staticFieldBase: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17549
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17550
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldBase(Ljava/lang/reflect/Field;)Ljava/lang/Object;'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17551
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17552
      /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17553
      * Report the location of a given static field, in conjunction with {@link
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17554
      * #staticFieldOffset}.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17555
      * <p>Fetch the base 'Object', if any, with which static fields of the
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17556
      * given class can be accessed via methods like {@link #getInt(Object,
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17557
      * long)}.  This value may be null.  This value may refer to an object
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17558
      * which is a 'cookie', not guaranteed to be a real Object, and it should
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17559
      * not be used in any way except as argument to the get and put routines in
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17560
      * this class.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17561
      */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17562
      public native Object staticFieldBase(Field f);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17563
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17564
     | javaFieldObject javaClassObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17565
     javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17566
     javaClassObject := javaFieldObject instVarNamed: #clazz.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17567
     ^self classForJavaClassObject: javaClassObject.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17568
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17569
    "Modified: / 17-08-2011 / 09:42:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17570
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17571
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17572
_sun_misc_Unsafe_staticFieldOffset: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17573
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17574
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldOffset(Ljava/lang/reflect/Field;)J'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17575
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17576
    | javaFieldObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17577
    javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17578
    ^javaFieldObject instVarNamed: #slot
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17579
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17580
    "Modified: / 17-08-2011 / 09:12:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17581
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17582
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17583
_sun_misc_Unsafe_unpark: nativeContext
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17584
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17585
    <javanative: 'sun/misc/Unsafe' name: 'unpark(Ljava/lang/Object;)V'>
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17586
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17587
    /**
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17588
     * Unblock the given thread blocked on <tt>park</tt>, or, if it is
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17589
     * not blocked, cause the subsequent call to <tt>park</tt> not to
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17590
     * block.  Note: this operation is 'unsafe' solely because the
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17591
     * caller must somehow ensure that the thread has not been
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17592
     * destroyed. Nothing special is usually required to ensure this
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17593
     * when called from Java (in which there will ordinarily be a live
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17594
     * reference to the thread) but this is not nearly-automatically
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17595
     * so when calling from native code.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17596
     * @param thread the thread to unpark.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17597
     *
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17598
     */
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17599
    public native void unpark(Object thread);
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17600
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17601
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17602
    | thread process |
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17603
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17604
    thread := nativeContext argAt: 1.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17605
    process := Java threads at: thread ifAbsent:[
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17606
        self error: 'No process for given thread'.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17607
    ].
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17608
    self unpark: process.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17609
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17610
    "Modified: / 16-08-2012 / 21:52:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17611
!
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17612
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17613
_sun_misc_VM_initialize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17615
    <javanative: 'sun/misc/VM' name: 'initialize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17616
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17617
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17618
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17619
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17620
    "Created: / 26-11-2010 / 18:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17621
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17622
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17623
!JavaVM class methodsFor:'native - sun.nio.ch'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17624
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17625
_sun_nio_ch_FileChannelImpl_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17626
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17627
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'initIDs()J'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17628
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17629
    ^ 4096 "/page size, see
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17630
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17631
    "Modified: / 10-07-2012 / 01:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17632
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17633
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17634
_sun_nio_ch_FileChannelImpl_map0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17635
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17636
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'map0(IJJ)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17637
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17638
    ^ UnimplementedNativeMethodSignal raise
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17639
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17640
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17641
_sun_nio_ch_FileChannelImpl_position0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17642
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17643
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'position0(Ljava/io/FileDescriptor;J)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17644
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17645
    | fd position stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17646
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17647
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17648
    position := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17649
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17650
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17651
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17652
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17653
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17654
    ^position = -1
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17655
        ifTrue:[stream position0Based]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17656
        ifFalse:[stream position0Based: position. 0].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17657
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17658
    "Modified: / 10-07-2012 / 01:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17659
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17660
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17661
_sun_nio_ch_FileChannelImpl_size0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17662
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17663
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'size0(Ljava/io/FileDescriptor;)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17664
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17665
    | fd stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17666
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17667
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17668
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17669
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17670
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17671
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17672
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17673
    ^stream fileSize max: stream position0Based.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17674
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17675
    "Modified: / 10-07-2012 / 01:28:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17676
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17677
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17678
_sun_nio_ch_FileChannelImpl_truncate0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17679
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17680
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'truncate0(Ljava/io/FileDescriptor;J)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17681
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17682
    | fd size stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17683
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17684
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17685
    size := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17686
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17687
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17688
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17689
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17690
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17691
    stream truncateTo: size.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17692
    ^0.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17693
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17694
    "Modified: / 10-07-2012 / 01:02:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17695
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17696
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17697
_sun_nio_ch_FileDispatcher_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17698
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17699
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17700
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17701
    ^ JavaNioSupport _sun_nio_ch_FileDispatcher_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17702
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17703
    "Modified: / 06-07-2012 / 22:35:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17704
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17705
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17706
_sun_nio_ch_FileDispatcher_preClose0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17707
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17708
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'preClose0(Ljava/io/FileDescriptor;)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17709
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17710
    "Nothing to do here"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17711
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17712
    "Modified: / 10-07-2012 / 00:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17713
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17714
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17715
_sun_nio_ch_FileDispatcher_read0: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17716
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17717
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'read0(Ljava/io/FileDescriptor;JI)I'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17718
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17719
    | fd address len stream read |
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17720
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17721
    fd := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17722
    address := nativeContext argAt: 2.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17723
    len := nativeContext argAt: 4.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17724
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17725
    stream := self validateFileDescriptor: fd.
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17726
    stream atEnd ifTrue:[ ^ -1 ].
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17727
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17728
        self shouldImplement
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17729
        "/WAS: read := stream nextBytes:len into:SimulatedNativeMemory memory startingAt: address
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17730
    ] on: Error do:[:ex|
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17731
        self throwIOExceptionWithMessage: ex description.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17732
        ^0
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17733
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17734
    ^read
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17735
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17736
    "Modified (comment): / 11-07-2012 / 10:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17737
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17738
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17739
_sun_nio_ch_FileDispatcher_write0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17740
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17741
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'write0(Ljava/io/FileDescriptor;JI)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17742
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17743
    | fd address len stream writtem |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17744
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17745
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17746
    address := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17747
    len := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17748
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17749
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17750
    [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17751
        self shouldImplement.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17752
        "/WAS: writtem := stream nextPutBytes:len from:SimulatedNativeMemory memory startingAt: address
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17753
    ] on: Error do:[:ex|
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17754
        self throwIOExceptionWithMessage: ex description.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17755
        ^0
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17756
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17757
    ^writtem
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17758
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17759
    "Modified: / 11-07-2012 / 10:38:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17760
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17761
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17762
_sun_nio_ch_IOUtil_initIDs: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17763
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17764
    <javanative: 'sun/nio/ch/IOUtil' name: 'initIDs()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17765
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17766
    "Nothing to do here"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17767
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17768
    "Modified: / 06-07-2012 / 22:10:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17769
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17770
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17771
_sun_nio_ch_IOUtil_initPipe: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17772
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17773
    <javanative: 'sun/nio/ch/IOUtil' name: 'initPipe([IZ)V'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17774
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17775
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17776
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17777
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17778
_sun_nio_ch_NativeThread_current: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17779
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17780
    <javanative: 'sun/nio/ch/NativeThread' name: 'current()J'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17781
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17782
    ^ JavaNioSupport _sun_nio_ch_NativeThread_current
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17783
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17784
    "Modified: / 06-07-2012 / 22:39:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17785
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17786
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17787
_sun_nio_ch_NativeThread_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17788
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17789
    <javanative: 'sun/nio/ch/NativeThread' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17790
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17791
    ^ JavaNioSupport _sun_nio_ch_NativeThread_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17792
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17793
    "Modified: / 06-07-2012 / 22:38:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17794
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17795
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17796
_sun_nio_ch_Net_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17797
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17798
    <javanative: 'sun/nio/ch/Net' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17799
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17800
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17801
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17802
    "Modified: / 10-05-2012 / 17:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17803
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17804
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17805
_sun_nio_ch_Net_socket0: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17806
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17807
    <javanative: 'sun/nio/ch/Net' name: 'socket0(ZZ)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17808
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17809
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17810
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17811
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17812
_sun_nio_ch_ServerSocketChannelImpl_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17813
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17814
    <javanative: 'sun/nio/ch/ServerSocketChannelImpl' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17815
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17816
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17817
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17818
    "Modified: / 10-05-2012 / 16:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17819
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17820
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17821
!JavaVM class methodsFor:'native - sun.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17822
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17823
_sun_reflect_ConstantPool_getDoubleAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17824
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17825
    <javanative: 'sun/reflect/ConstantPool' name: 'getDoubleAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17826
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17827
        | cpool  index  double |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17828
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17829
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17830
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17831
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17832
    double := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17833
    self assert:double isFloat description:'Not a float constant!!'.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17834
    ^ double
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17835
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17836
    "Modified: / 25-02-2011 / 18:40:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17837
    "Created: / 28-02-2011 / 17:24:17 / Marcel Hlopko <hlopik@gmail.com>"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
 17838
    "Modified: / 02-11-2011 / 11:24:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17839
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17840
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17841
_sun_reflect_ConstantPool_getIntAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17842
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17843
    <javanative: 'sun/reflect/ConstantPool' name: 'getIntAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17844
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17845
        | cpool  index  int |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17846
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17847
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17848
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17849
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17850
    int := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17851
    self assert:int isInteger description:'Not an integer constant!!'.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17852
    ^ int
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17853
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17854
    "Modified: / 25-02-2011 / 18:40:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17855
    "Created: / 28-02-2011 / 17:28:10 / Marcel Hlopko <hlopik@gmail.com>"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17856
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17857
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17858
_sun_reflect_ConstantPool_getLongAt0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17860
    <javanative: 'sun/reflect/ConstantPool' name: 'getLongAt0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17861
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17862
        | cpool  index  long |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17863
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17864
    cpool := self reflection constantPoolFor:(nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17865
    index := nativeContext at:3.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17866
     "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17867
    long := cpool at:index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17868
    self assert:long isInteger description:'Not a float constant!!'.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17869
    ^ long
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17870
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17871
    "Modified: / 28-02-2011 / 17:40:02 / Marcel Hlopko <hlopik@gmail.com>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17872
    "Modified: / 28-02-2011 / 18:54:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17873
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17874
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17875
_sun_reflect_ConstantPool_getUTF8At0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17876
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17877
    <javanative: 'sun/reflect/ConstantPool' name: 'getUTF8At0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17878
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17879
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17880
    | cpool index string |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17881
    cpool := self reflection constantPoolFor: (nativeContext receiver).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17882
    index := nativeContext at: 3.
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17883
    "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17884
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17885
    string := cpool at: index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17886
    self assert: string isString description: 'Not an UTF8 constant!!'.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17887
    ^Java as_String: string
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17888
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17889
    "Created: / 06-02-2011 / 12:56:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17890
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17891
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17892
_sun_reflect_NativeConstructorAccessorImpl_newInstance0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17893
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17894
    <javanative: 'sun/reflect/NativeConstructorAccessorImpl' name: 'newInstance0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17895
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17896
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17897
    | ctor args method instance class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17898
    ctor := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17899
    args := aJavaContext argAt: 2.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17900
    class := self reflection classForJavaConstructorObject: ctor.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17901
    method := self reflection methodForJavaConstructorObject: ctor.
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17902
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17903
    instance := class new.
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
 17904
    self invoke: ctor receiver: instance arguments: args context: aJavaContext constructor: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17905
    ^instance
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17906
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17907
    "Created: / 26-11-2010 / 11:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17908
    "Modified: / 09-02-2011 / 01:12:10 / Marcel Hlopko <hlopik@gmail.com>"
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17909
    "Modified: / 22-08-2012 / 12:25:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17910
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17911
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17912
_sun_reflect_NativeMethodAccessorImpl_invoke0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17914
    <javanative: 'sun/reflect/NativeMethodAccessorImpl' name: 'invoke0'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17915
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17916
    private static native Object invoke0(Method m, Object obj, Object[] args);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17917
    "
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 17918
    | m obj args method |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17919
    m := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17920
    obj := nativeContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17921
    args := nativeContext argAt: 3.
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17922
    method := self reflection methodForJavaMethodObject: m.
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17923
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17924
    ^ self invoke: m receiver: obj arguments: args context: nativeContext constructor: false.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17926
    "Created: / 06-02-2011 / 00:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17927
    "Modified: / 28-02-2011 / 16:57:31 / Marcel Hlopko <hlopik@gmail.com>"
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17928
    "Modified: / 19-08-2011 / 15:06:00 / cg"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17929
    "Modified: / 05-07-2012 / 23:49:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17930
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17931
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17932
_sun_reflect_Reflection_getCallerClass: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17934
    <javanative: 'sun/reflect/Reflection' name: 'getCallerClass'>
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17935
    "
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17936
    /** Returns the class of the method <code>realFramesToSkip</code>
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17937
        frames up the stack (zero-based), ignoring frames associated
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17938
        with java.lang.reflect.Method.invoke() and its implementation.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17939
        The first frame is that associated with this method, so
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17940
        <code>getCallerClass(0)</code> returns the Class object for
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17941
        sun.reflect.Reflection. Frames associated with
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17942
        java.lang.reflect.Method.invoke() and its implementation are
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17943
        completely ignored and do not count toward the number of 'real'
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17944
        frames skipped. */
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17945
    "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17946
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17947
    | framesToSkip framesSkipped frame cls |
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17948
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17949
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17950
    framesToSkip := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17951
    framesSkipped := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17952
    frame := aJavaContext.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17953
    [ framesSkipped == framesToSkip ] whileFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17954
        frame := frame sender.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17955
        "Frames for java,lang.reflect.Method.invoke() does not count, sigh.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17956
         What a crappy implementation"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17957
        (frame selector == #'invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;'
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17958
            and:[ frame receiver class name = #'java/lang/reflect/Method']) ifFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17959
                framesSkipped := framesSkipped + 1
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17960
            ]
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17961
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17962
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17963
    "Returns the __class of the method__, not !!!!!! the class of method's receiver !!!!!!"
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17964
    "                  |                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17965
    "                  V                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17966
    cls := frame method mclass theNonMetaclass.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 17967
    ^cls isJavaClass
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17968
        ifTrue:[JavaVM javaClassObjectForClass:cls]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17969
        ifFalse:[nil]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17970
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17971
    "Created: / 25-10-2010 / 16:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17972
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17973
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17974
_sun_reflect_Reflection_getClassAccessFlags: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17975
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17976
    <javanative: 'sun/reflect/Reflection' name: 'getClassAccessFlags'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17977
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17978
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17979
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17980
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17981
    ^(class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17982
        1041"FIXME: make it symbolic"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17983
    ] ifFalse:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17984
        class accessFlags
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17985
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17987
    "Created: / 26-11-2010 / 10:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17988
    "Modified: / 28-01-2011 / 15:19:28 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17989
    "Modified: / 01-09-2011 / 09:46:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17990
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17991
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17992
!JavaVM class methodsFor:'native - sun.security.provider'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17993
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17994
_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17996
    <javanative: 'sun/security/provider/NativeSeedGenerator' name: 'nativeGenerateSeed([B)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17997
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17998
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17999
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 18000
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18001
!JavaVM class methodsFor:'queries'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18002
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18003
booted
1209
vranyj1
parents: 1205
diff changeset
 18004
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18005
    | jVM |
1209
vranyj1
parents: 1205
diff changeset
 18006
vranyj1
parents: 1205
diff changeset
 18007
    "/Slightly faster variant of the code below
vranyj1
parents: 1205
diff changeset
 18008
    ^SystemClassLoader notNil and:[
vranyj1
parents: 1205
diff changeset
 18009
        jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 18010
        jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ]
vranyj1
parents: 1205
diff changeset
 18011
    ].
vranyj1
parents: 1205
diff changeset
 18012
vranyj1
parents: 1205
diff changeset
 18013
"/    jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 18014
"/    ^ jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ] and: [self systemClassLoader notNil].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18015
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18016
    "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18017
     JavaVM booted"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18018
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18019
    "Created: / 08-08-2011 / 10:04:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18020
    "Modified: / 02-11-2011 / 22:08:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1209
vranyj1
parents: 1205
diff changeset
 18021
    "Modified: / 04-12-2011 / 10:32:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18022
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18023
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18024
!JavaVM class methodsFor:'threads'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18025
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18026
clearInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18027
    ThreadInterrupts removeKey: process ifAbsent: []
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18028
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18029
    "Created: / 16-08-2012 / 22:03:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18030
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18031
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18032
isInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18033
    ^ThreadInterrupts at: process ifAbsent:[false].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18034
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18035
    "Created: / 16-08-2012 / 22:05:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18036
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18037
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18038
park: process timeout: tout
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18039
    "A helper for sun.misc.Unsafe.park()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18040
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18041
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18042
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18043
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18044
    ParkUnparkSemaphores isNil ifTrue:[
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18045
        ParkUnparkSemaphores := Dictionary new.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18046
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18047
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18048
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18049
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18050
    Logger log: 'parking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18051
    sema parkWithTimeoutMs: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18052
    Logger log: 'parked thread ', process printString , ' resumed' severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18053
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18054
    "Created: / 16-08-2012 / 21:51:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18055
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18056
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18057
setInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18058
    ThreadInterrupts at: process put: true
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18059
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18060
    "Created: / 16-08-2012 / 22:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18061
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18062
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18063
terminateAllThreads
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18064
    Java terminateAllThreads.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18065
    JavaEventThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18066
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18067
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18068
    "Created: / 8.1.1998 / 17:43:54 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18069
    "Modified: / 24.12.1999 / 02:33:16 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18070
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18071
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18072
threadStart: nativeContext
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18073
    "start the thread"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18074
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18075
    | jThread  jName  nm  stProcess  helper |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18076
    jThread := nativeContext receiver.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18077
    self assert: (jThread instVarNamed: 'priority') > 0.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18078
    stProcess := JavaProcess for: (helper := JavaProcess newHelper)
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18079
                priority: (Processor activePriority).
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18080
    helper javaThreadObject: jThread.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18081
    helper javaProcess: stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18082
    jName := jThread instVarNamed: 'name'.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18083
    jName isString ifFalse: [ nm := Java as_ST_String: jName. ] ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18084
        nm := jName
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18085
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18086
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18087
    "/ kludge - remember the ScreenUpdater ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18088
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18089
    nm = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18090
        nm = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18091
            (nm startsWith: 'AWT-EventQueue') ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18092
                JavaEventQueueThread := stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18093
            ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18094
        ]
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18095
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18096
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18097
    "/ when that process terminates, wakup any waiters
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18098
    "/mh 29.11.11 this makes join work
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18099
    "/mh 30.11.11 disable wait is to ensure that join can be called on thread after its finished and dont wait forever"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18100
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18101
    stProcess
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18102
        addExitAction: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18103
            Logger
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18104
                log: ('%1 is going to die, notifying all waiters and disabling waiting on its monitor'
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18105
                        bindWith: jThread printString)
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 18106
                severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 18107
                facility: #JVM.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18108
            jThread instVarNamed: 'threadStatus' put: 0.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18109
            jThread getJavaMonitor disableWait.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18110
            self acquireMonitorAndNotifyAll: jThread.
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18111
            ThreadInterrupts notNil ifTrue:[
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18112
                ThreadInterrupts removeKey: stProcess ifAbsent:[]
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18113
            ].
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18114
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18115
    stProcess name: 'JAVA-' , nm.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18116
    stProcess restartable: true.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18117
    jThread instVarNamed: 'threadStatus' put: 1.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18118
    Java addThread: jThread for: stProcess.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18119
    stProcess resume.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18120
    ^ nil
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18121
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18122
    "Modified: / 24-12-1999 / 03:14:33 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18123
    "Created: / 14-12-2010 / 21:31:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18124
    "Modified: / 09-12-2011 / 12:58:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1692
561d5ac3f2df - JavaVM - some OpenJDK 7 support
vranyj1
parents: 1691
diff changeset
 18125
    "Modified: / 03-09-2012 / 18:42:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18126
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18127
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18128
unpark: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18129
    "A helper for sun.misc.Unsafe.unpark()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18130
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18131
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18132
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18133
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18134
    ParkUnparkSemaphores isNil ifTrue:[ParkUnparkSemaphores dictionary new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18135
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18136
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18137
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18138
    Logger log: 'unparking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18139
    sema signal.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18140
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 18141
    "Created: / 16-08-2012 / 21:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18142
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18144
!JavaVM class methodsFor:'vm support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18145
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18146
_ANEWARRAY:cls _:size
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18147
    "Returns a new array of elements of type class."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18148
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18149
    self assert: cls isBehavior.
1151
vranyj1
parents: 1150
diff changeset
 18150
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18151
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18152
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18153
        ^nil
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18154
    ].
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18155
    self assert:cls javaArrayClass isJavaArrayClass.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 18156
    ^ cls javaArrayClass new:size
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18158
    "Created: / 17-12-2010 / 14:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18159
    "Modified: / 22-11-2011 / 09:46:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18160
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18162
_ARRAYLENGTH:arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18163
    arr isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18164
        "/self halt:'should not happen'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18165
        self throwNullPointerException.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18166
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18167
    ^ arr size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18168
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18169
    "Created: / 08-01-1999 / 14:38:27 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 18170
    "Modified: / 31-05-2011 / 10:09:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18171
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18172
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18173
_ATHROW:aJavaException
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18174
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18175
    <resource: #skipInDebuggersWalkBack>
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18176
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18177
    aJavaException isNil ifTrue:[
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18178
        self halt:'cannot happen'
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18179
    ].
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18180
    "When an exception is handled in Smalltalk code and the stack is
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18181
     being unwound, then all intermediate Java finally blocks are executed.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18182
     This is done by fake-throwing special FinallyToken, as there must an
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18183
     exception instance for Java. A Java compiler compiles unconditional
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18184
     ATHROW at the end of finally block to pass execution to another handler.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18185
     We don't want to do so, in case we're manually invoking finally blocks.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18186
     Hence following hack: we teleport back to handler caller"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 18187
    aJavaException class == JavaContext::FinallyToken ifTrue:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 18188
        aJavaException pass.
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
 18189
        self halt:'Should never be reached'.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 18190
    ].
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18191
    self throwException:aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18193
    "Created: / 08-01-1999 / 14:15:36 / cg"
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 18194
    "Modified: / 08-11-2011 / 16:32:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 18195
    "Modified: / 09-04-2012 / 21:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18196
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18197
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18198
_CHECKCAST2: object _: classRef
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18199
    "Called by the VM (java bytecode interpreter) for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18200
     Unlike in _CHECKCAST:_: the second parameter is a class reference,
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18201
     not the class itself!! Will wanish!!"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18202
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18203
    | class |
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18204
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18205
    classRef isJavaRef ifTrue: [ class := classRef resolve ] ifFalse: [
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18206
        self error: 'I expected classRefs only - maybe I was wrong'
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18207
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18208
    (object isNil or: [ (self canCast: object class to: class) not ]) ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18209
        self breakPoint: #mh.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18210
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18211
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18212
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18213
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18214
    ^ true.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18215
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18216
    "Created: / 19-05-2011 / 10:12:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18217
    "Modified (comment): / 09-10-2012 / 11:56:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18218
!
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18219
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18220
_CHECKCAST: object _: class
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18221
    "Called from the JIT-compiled code for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18222
     Unlike in _CHECKCAST2:_: the second parameter is a class,,
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18223
     not a class class reference!!
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18224
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18225
     This method *MUST* return the object for this may lead
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18226
     into GC. See ___checkcast() VM function
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18227
     "
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18228
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18229
    (self canCast: object class to: class) ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18230
        self throwClassCastException.
1716
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18231
        ^ nil "Not reached"
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18232
    ].
cd3a3a8a0fef Added primitive to test patch/unpatch context. See XLOAD testcase.
vranyj1
parents: 1714
diff changeset
 18233
    ^ object
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18235
    "Created: / 08-01-1999 / 14:53:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18236
    "Modified: / 09-01-1999 / 00:45:21 / cg"
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18237
    "Modified: / 09-10-2012 / 11:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18238
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18240
_D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18241
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18243
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18244
    v > 16r7FFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18245
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18246
	v := 16r7FFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18247
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18248
	v < 16r80000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18249
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18250
	    v := 16r80000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18251
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18252
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18253
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18255
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18256
    "Created: / 8.1.1999 / 14:47:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18257
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18258
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18259
_D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18260
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18261
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18262
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18263
    v > 16r7FFFFFFFFFFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18264
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18265
	v := 16r7FFFFFFFFFFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18266
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18267
	v < 16r8000000000000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18268
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18269
	    v := 16r8000000000000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18270
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18271
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18272
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18273
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18274
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18275
    "Created: / 8.1.1999 / 14:46:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18276
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18278
_DADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18279
    ^ op1 asFloat + op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18281
    "Created: / 8.1.1999 / 15:11:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18282
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18283
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18284
_DDIV:op1 _:op2
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18285
    ^ op1 asFloat uncheckedDivide: op2 asFloat.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18286
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18287
    "Created: / 08-01-1999 / 15:09:10 / cg"
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18288
    "Modified: / 06-09-2011 / 19:31:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18289
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18290
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18291
_DMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18292
    ^ op1 asFloat * op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18294
    "Created: / 8.1.1999 / 14:49:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18295
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18297
_DNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18298
    ^ op asFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18300
    "Created: / 8.1.1999 / 15:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18301
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18303
_DSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18304
    ^ op1 asFloat - op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18305
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18306
    "Created: / 8.1.1999 / 15:10:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18307
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18308
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18309
_F2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18310
    ^ self _D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18311
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18312
    "Created: / 8.1.1999 / 14:47:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18313
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18314
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18315
_F2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18316
    ^ self _D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18317
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18318
    "Created: / 8.1.1999 / 14:47:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18319
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18321
_FADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18322
    ^ op1 asShortFloat + op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18324
    "Created: / 8.1.1999 / 15:11:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18325
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18327
_FDIV:op1 _:op2
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18328
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18329
    op1 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18330
        op2 isZero ifTrue:[ ^ Float NaN ]
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18331
    ].
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18332
    op2 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18333
        ^ Float infinity
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18334
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18335
    ^ op1 asShortFloat / op2 asShortFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18336
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18337
    "Created: / 08-01-1999 / 15:09:32 / cg"
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18338
    "Modified: / 06-07-2012 / 13:12:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18339
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18341
_FMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18342
    ^ op1 asShortFloat * op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18343
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18344
    "Created: / 8.1.1999 / 14:50:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18345
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18347
_FNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18348
    ^ op asShortFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18349
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18350
    "Created: / 8.1.1999 / 15:06:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18351
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18352
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18353
_FSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18354
    ^ op1 asShortFloat - op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18356
    "Created: / 8.1.1999 / 15:08:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18357
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18358
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18359
_INSTANCEOF:object _:class
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18360
    "Called from the jitted code for unhandled cases.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18361
     Unlike in _INSTANCEOF_R:_: the second parameter is a class,,
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18362
     not a class class reference!!"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18363
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18364
    object isNil ifTrue:[^0].
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18365
    ^(self canCast: object class to: class)
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18366
        ifTrue:[1]
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18367
        ifFalse:[0]
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18368
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18369
    "Created: / 08-01-1999 / 14:52:54 / cg"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18370
    "Modified: / 27-01-1999 / 20:56:25 / cg"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18371
    "Modified: / 09-10-2012 / 11:55:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18372
    "Modified (comment): / 15-10-2012 / 21:51:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18373
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18374
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18375
_INSTANCEOF_R: object _: classRef
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18376
    "Called by the VM (java bytecode interpreter) for unhandled cases.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18377
     Unlike _INSTANCEOF:_: the second parameter is a class reference,
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18378
     not the class itself!! Will wanish!!"
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18379
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18380
    | class |
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18381
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18382
    classRef isJavaRef ifFalse: [self error: 'expected only classRefs - maybe I was wrong'].
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18383
    class := classRef resolve.
1714
cb5870996342 - JavaVM - support for JIT compiler
vranyj1
parents: 1709
diff changeset
 18384
    object isNil ifTrue: [ ^ 0 ].
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18385
    ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18386
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18387
    "Created: / 15-10-2012 / 21:51:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18388
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18390
_L2D:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18391
    ^ op1 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18393
    "Created: / 8.1.1999 / 14:46:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18394
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18396
_L2F:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18397
    ^ op1 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18398
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18399
    "Created: / 8.1.1999 / 14:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18400
    "Modified: / 8.1.1999 / 14:50:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18401
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18403
_LADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18404
    |sum|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18405
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18406
    sum := (op1 + op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18407
    ^ sum
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18408
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18409
    "Created: / 8.1.1999 / 15:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18410
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18411
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18412
_LAND:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18413
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18415
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18416
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18417
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18418
    rslt := op1 bitAnd: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18419
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18421
    "Modified: / 7.1.1998 / 21:21:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18422
    "Created: / 8.1.1999 / 14:54:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18423
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18424
1729
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18425
_LDC_R: ref
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18426
    "Called by JIT-compiled code for non-constant
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18427
     reference (StringRef or ClassRef"
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18428
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18429
    ^ref isJavaClassRef ifTrue:[
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18430
        self javaClassObjectForClass: ref resolve
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18431
    ] ifFalse:[
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18432
        ref resolve
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18433
    ]
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18434
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18435
    "Created: / 16-10-2012 / 09:34:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18436
!
44aa9cffed07 - JavaVM
vranyj1
parents: 1727
diff changeset
 18437
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18438
_LDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18439
    |quo|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18441
    quo := op1 quo: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18442
    ^ quo
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18444
    "Created: / 8.1.1999 / 15:04:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18445
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18446
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18447
_LMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18448
    |prod o1 o2 sign|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18449
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18450
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18451
    "/ ST's largeIntegers compute a correct result;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18452
    "/ but here, we want the overflow to flow into the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18453
    "/ sign bit ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18455
    sign := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18456
    (o1 := op1) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18457
	sign := -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18458
	o1 := o1 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18459
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18460
    (o2 := op2) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18461
	sign := sign negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18462
	o2 := o2 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18463
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18464
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18465
    prod := (o1 * o2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18466
    (prod bitAnd:16r8000000000000000) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18467
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18468
    sign == -1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18469
	prod := prod negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18470
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18471
    ^ prod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18473
    "Created: / 8.1.1999 / 15:10:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18474
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18476
_LNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18477
    ^ op asInteger negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18479
    "Created: / 8.1.1999 / 15:06:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18480
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18481
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18482
_LOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18483
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18485
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18486
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18487
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18488
    rslt := op1 bitOr: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18489
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18490
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18491
    "Created: / 8.1.1999 / 15:05:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18492
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18493
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18494
_LREM:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18495
    |rem|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18497
    rem := op1 rem: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18498
    ^ rem
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18500
    "Modified: / 7.1.1998 / 00:23:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18501
    "Created: / 8.1.1999 / 15:04:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18502
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18504
_LSHL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18505
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18506
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18507
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18508
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18509
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18510
    rslt := (op1 bitShift:op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18511
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18513
    "Created: / 8.1.1999 / 14:51:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18514
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18516
_LSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18517
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18519
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18520
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18521
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18523
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18524
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18525
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18526
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18527
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18529
    "Created: / 8.1.1999 / 14:51:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18530
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18532
_LSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18533
    |diff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18535
    diff := (op1 - op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18536
    ^ diff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18538
    "Created: / 8.1.1999 / 15:10:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18539
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18541
_LUSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18542
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18543
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18544
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18545
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18546
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18547
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18548
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18549
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18550
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18551
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18552
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18554
    "Modified: / 7.1.1998 / 21:22:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18555
    "Created: / 8.1.1999 / 14:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18556
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18558
_LXOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18559
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18561
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18562
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18563
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18564
    rslt := op1 bitXor: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18565
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18567
    "Created: / 8.1.1999 / 15:12:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18568
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18569
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18570
_MONITORENTER: someObject
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18571
    self assert: (thisContext sender isJavaContext).
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18572
    self assert: (thisContext sender isMarkedForUnwind).
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18573
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18574
    self monitorEnter: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18575
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18576
    "Created: / 08-01-1999 / 14:23:10 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18577
    "Modified: / 08-01-1999 / 18:47:26 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18578
    "Modified: / 10-08-2011 / 20:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18579
    "Modified: / 09-11-2011 / 19:23:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18580
    "Modified (format): / 26-08-2012 / 15:20:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18581
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18582
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18583
_MONITOREXIT: someObject
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18584
    self monitorExit: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18585
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18586
    "Created: / 08-01-1999 / 14:23:19 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18587
    "Modified: / 08-01-1999 / 18:47:08 / cg"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18588
    "Modified: / 09-11-2011 / 12:42:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 18589
    "Modified: / 26-08-2012 / 23:51:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18590
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18591
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18592
_MULTINEW2: classRef _: dim1
927
vranyj1
parents: 926
diff changeset
 18593
vranyj1
parents: 926
diff changeset
 18594
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18595
1151
vranyj1
parents: 1150
diff changeset
 18596
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18597
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18598
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18599
        ^nil
vranyj1
parents: 1150
diff changeset
 18600
    ].
927
vranyj1
parents: 926
diff changeset
 18601
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18602
    arrCls := classRef resolve.
vranyj1
parents: 926
diff changeset
 18603
    arr := arrCls new: dim1.
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18604
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18605
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18606
    "Created: / 19-05-2011 / 10:46:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18607
    "Modified: / 22-11-2011 / 09:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18608
!
vranyj1
parents: 926
diff changeset
 18609
vranyj1
parents: 926
diff changeset
 18610
_MULTINEW2: classRef _: dim1 _: dim2
vranyj1
parents: 926
diff changeset
 18611
vranyj1
parents: 926
diff changeset
 18612
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18613
1151
vranyj1
parents: 1150
diff changeset
 18614
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18615
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18616
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18617
        ^nil
vranyj1
parents: 1150
diff changeset
 18618
    ].
vranyj1
parents: 1150
diff changeset
 18619
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18620
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18621
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18622
        ^nil
vranyj1
parents: 1150
diff changeset
 18623
    ].
vranyj1
parents: 1150
diff changeset
 18624
vranyj1
parents: 1150
diff changeset
 18625
927
vranyj1
parents: 926
diff changeset
 18626
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18627
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18628
    arr := arrCls new: dim2.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18629
    1 to: dim2 do:[:i|
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18630
        arr at: i put: (arrCls javaComponentClass new: dim1)
927
vranyj1
parents: 926
diff changeset
 18631
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18632
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18633
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18634
    "Created: / 19-05-2011 / 10:47:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18635
    "Modified: / 22-11-2011 / 09:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18636
!
vranyj1
parents: 926
diff changeset
 18637
vranyj1
parents: 926
diff changeset
 18638
_MULTINEW2: classRef _: dim1 _: dim2 _: dim3
vranyj1
parents: 926
diff changeset
 18639
vranyj1
parents: 926
diff changeset
 18640
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18641
1151
vranyj1
parents: 1150
diff changeset
 18642
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18643
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18644
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18645
        ^nil
vranyj1
parents: 1150
diff changeset
 18646
    ].
vranyj1
parents: 1150
diff changeset
 18647
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18648
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18649
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18650
        ^nil
vranyj1
parents: 1150
diff changeset
 18651
    ].
vranyj1
parents: 1150
diff changeset
 18652
    dim3 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18653
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18654
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18655
        ^nil
vranyj1
parents: 1150
diff changeset
 18656
    ].
vranyj1
parents: 1150
diff changeset
 18657
vranyj1
parents: 1150
diff changeset
 18658
927
vranyj1
parents: 926
diff changeset
 18659
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18660
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18661
    arr := arrCls new: dim3.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18662
    1 to: dim3 do:[:i|
927
vranyj1
parents: 926
diff changeset
 18663
        | arr2 |
vranyj1
parents: 926
diff changeset
 18664
        arr2 := arrCls javaComponentClass new: dim2.
vranyj1
parents: 926
diff changeset
 18665
        1 to: dim2 do:[:j|
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18666
            arr2 at: j put: (arrCls javaComponentClass javaComponentClass new: dim1).
927
vranyj1
parents: 926
diff changeset
 18667
        ].
vranyj1
parents: 926
diff changeset
 18668
        arr at: i put: arr2.
vranyj1
parents: 926
diff changeset
 18669
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18670
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18671
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18672
    "Created: / 19-05-2011 / 10:47:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18673
    "Modified: / 22-11-2011 / 09:45:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18674
!
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18675
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18676
_MULTINEW:typeRef _:dim1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18677
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18678
    |arr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18680
    arr := typeRef new:dim1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18682
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18684
    "Created: / 08-01-1999 / 14:15:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18685
    "Modified: / 08-01-1999 / 18:03:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18686
    "Modified: / 16-03-2011 / 16:20:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18687
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18688
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18689
_MULTINEW: typeRef _: dim1 _: dim2
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18690
    | arr |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18691
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18692
    arr := typeRef new: dim2.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18693
    1 to: dim2
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18694
        do: [:idx | arr at: idx put: (self _MULTINEW: typeRef javaComponentClass _: dim1) ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18695
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18697
    "Created: / 08-01-1999 / 14:15:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18698
    "Modified: / 08-01-1999 / 17:58:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18699
    "Modified: / 16-03-2011 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18701
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18702
_MULTINEW:typeRef _:dim1 _:dim2 _:dim3
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18703
    |clsRef cls arr elType elSizes|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18705
    clsRef := typeRef asClassPointerRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18706
    cls := clsRef javaArrayClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18707
    arr := cls new:dim3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18708
    elType := typeRef deref.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18709
    1 to:dim3
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18710
        do:
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18711
            [:idx |
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18712
            arr at:idx
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18713
                put:(self
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18714
                        _MULTINEW:elType
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18715
                        _:dim1
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18716
                        _:dim2) ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18717
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18718
"/ self halt.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18719
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18720
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18721
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18722
    "Modified: / 6.1.1998 / 23:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18723
    "Created: / 8.1.1999 / 14:15:49 / cg"
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18724
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18725
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18726
_NEW: cls
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18727
    | inst |
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18728
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18729
    cls classInit. "/initializes the class if it is not already"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18730
    inst := cls basicNew.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18731
    thisContext sender method flushCode.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18732
    ^inst.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18733
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18734
    "Created: / 15-10-2012 / 21:53:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18735
    "Modified: / 02-11-2012 / 21:09:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18736
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18737
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18738
_NEWARRAY:type _:size
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18739
    "VM helper method NEWARRAY insn. Called only when
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18740
     size is not an SmallInt or negative"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18741
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18742
    size < 0 ifTrue:[
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18743
        self throwNegativeArraySizeException: size.
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18744
    ]
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18745
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18746
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18747
!
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18748
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18749
_NEW_R: clsRef
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18750
    | cls inst |
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18751
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18752
    cls := clsRef resolve. "/initializes the class if it is not already"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18753
    inst := cls basicNew.
1727
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18754
    thisContext sender method flushCode.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18755
    ^inst.
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18756
c23e0b74bc1c - JavaVM
vranyj1
parents: 1720
diff changeset
 18757
    "Created: / 15-10-2012 / 21:54:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1793
6537437f04a7 Make #newCleared obsolete.
vranyj1
parents: 1792
diff changeset
 18758
    "Modified: / 02-11-2012 / 21:10:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18759
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18760
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18761
!JavaVM class methodsFor:'windows - events'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18762
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18763
awtEventsForEvent: anEvent javaWindow: jWin
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18764
    "given an ST/X event, create corresponding AWT event(s) for it"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18765
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18766
    | jEv  jEv1  jEv2  modifiers  key  keyChar  untranslatedKey  id  type  x  y  w  h  view  menu  resized  moved  eventArgs  clickCount  jRect  jKeyEventClass  jInputEventClass  jMouseEventClass  jWindowEventClass  jPaintEventClass  jComponentEventClass |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18768
    type := anEvent type.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18769
    eventArgs := anEvent arguments.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18770
    key := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18771
    modifiers := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18772
    x := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18773
    y := 0.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18774
    ((type == #exposeX:y:width:height:)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18775
        or: [ (type == #graphicExposeX:y:width:height:) or: [ (type == #damage) ] ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18776
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18777
                "/        jWindowEventClass := Java classForName:'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18778
                "/        id := (jPaintEventClass instVarNamed:'PAINT').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18779
                jPaintEventClass := self classForName: 'java.awt.event.PaintEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18780
                id := (jPaintEventClass instVarNamed: 'UPDATE').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18781
                ((type == #exposeX:y:width:height:)
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18782
                    or: [ (type == #graphicExposeX:y:width:height:) ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18783
                        ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18784
                            x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18785
                            y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18786
                            w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18787
                            h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18788
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18789
                        ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18790
                            x := eventArgs left.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18791
                            y := eventArgs top.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18792
                            w := eventArgs width.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18793
                            h := eventArgs height.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18794
                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18795
                jRect := (Java classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18796
                jRect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18797
                jRect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18798
                jRect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18799
                jRect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18800
                jEv := jPaintEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18801
                jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18802
                jEv instVarNamed: 'updateRect' put: jRect.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18803
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18804
"/        jEv instVarNamed:'g'         put:jWin.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18805
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18806
                ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18807
            ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18808
    (anEvent isKeyEvent
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18809
        or: [ anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ] ])
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18810
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18811
                jInputEventClass := Java classForName: 'java.awt.event.InputEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18812
                anEvent hasAlt ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18813
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'ALT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18814
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18815
                anEvent hasCtrl ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18816
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'CTRL_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18817
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18818
                anEvent hasMeta ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18819
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'META_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18820
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18821
                anEvent hasShift ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18822
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18823
                                bitOr: (jInputEventClass instVarNamed: 'SHIFT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18824
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18825
                anEvent hasButton1 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18826
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18827
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON1_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18828
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18829
                anEvent hasButton2 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18830
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18831
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON2_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18832
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18833
                anEvent hasButton3 ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18834
                    modifiers := modifiers
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18835
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON3_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18836
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18837
                anEvent isPointerEnterLeaveEvent ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18838
                    "/ ST/X does not (yet) record this information
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18839
                    "/ with pointerLeave events.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18840
                    x := anEvent x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18841
                    y := anEvent y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18842
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18843
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18844
    anEvent isKeyEvent ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18845
        jKeyEventClass := Java classForName: 'java.awt.event.KeyEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18846
        key := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18847
        keyChar := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18848
        key := anEvent key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18849
        key isCharacter ifTrue: [ key := keyChar := key asciiValue ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18850
            untranslatedKey := anEvent view device keyboardMap keyAtValue: key
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18851
                        ifAbsent: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18852
            untranslatedKey == #Insert ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18853
                key := jKeyEventClass instVarNamed: 'VK_INSERT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18854
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18855
            untranslatedKey == #Delete ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18856
                key := jKeyEventClass instVarNamed: 'VK_DELETE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18857
                "/ 127
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18858
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18859
            untranslatedKey == #BackSpace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18860
                key := jKeyEventClass instVarNamed: 'VK_BACK_SPACE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18861
                "/ 8
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18862
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18863
            untranslatedKey == #Return ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18864
                key := jKeyEventClass instVarNamed: 'VK_ENTER'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18865
                "/ 13
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18866
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18867
            untranslatedKey == #Tab ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18868
                key := jKeyEventClass instVarNamed: 'VK_TAB'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18869
                "/ 9
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18870
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18871
            untranslatedKey == #Home ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18872
                key := jKeyEventClass instVarNamed: 'VK_HOME'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18873
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18874
            untranslatedKey == #End ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18875
                key := jKeyEventClass instVarNamed: 'VK_END'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18876
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18877
            (key == #PreviousPage or: [ untranslatedKey == #Prior ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18878
                key := jKeyEventClass instVarNamed: 'VK_PAGE_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18879
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18880
            (key == #NextPage or: [ key == #EndOfText ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18881
                key := jKeyEventClass instVarNamed: 'VK_PAGE_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18882
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18883
            untranslatedKey == #CursorUp ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18884
                key := jKeyEventClass instVarNamed: 'VK_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18885
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18886
            untranslatedKey == #CursorDown ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18887
                key := jKeyEventClass instVarNamed: 'VK_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18888
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18889
            untranslatedKey == #CursorLeft ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18890
                key := jKeyEventClass instVarNamed: 'VK_LEFT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18891
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18892
            untranslatedKey == #CursorRight ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18893
                key := jKeyEventClass instVarNamed: 'VK_RIGHT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18894
            ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18895
            (#( #F1 #F2 #F3 #F4 #F5 #F6 #F7 #F8 #F9 #F10 #F11 #F12 )
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18896
                includes: untranslatedKey)
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18897
                    ifTrue: [ key := jKeyEventClass instVarNamed: ('VK_' , untranslatedKey) ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18898
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18899
        (type == #keyPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18900
            id := jKeyEventClass instVarNamed: 'KEY_PRESSED'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18901
        ] ifFalse: [ id := jKeyEventClass instVarNamed: 'KEY_RELEASED' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18902
        jEv := jKeyEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18903
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18904
        jEv instVarNamed: 'keyCode' put: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18905
        jEv instVarNamed: 'keyChar' put: keyChar.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18906
        jEv instVarNamed: 'id' put: id.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18907
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18908
"/        jEv instVarNamed:'x'         put:x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18909
"/        jEv instVarNamed:'y'         put:y.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18910
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18911
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18912
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18913
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18914
    (anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18915
        jMouseEventClass := Java classForName: 'java.awt.event.MouseEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18916
        clickCount := 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18917
        (type == #buttonPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18918
            id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18919
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18920
            (type == #buttonRelease:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18921
                id := jMouseEventClass instVarNamed: 'MOUSE_RELEASED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18922
            ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18923
                (type == #buttonMotion:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18924
                    (anEvent state bitAnd: (anEvent view device anyButtonMotionMask)) == 0 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18925
                        id := jMouseEventClass instVarNamed: 'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18926
                    ] ifFalse: [ id := jMouseEventClass instVarNamed: 'MOUSE_DRAGGED'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18927
                ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18928
                    "/                    (type == #'pointerMotion:x:y:') ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18929
                    "/                        id := jMouseEventClass instVarNamed:'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18930
                    "/                    ] ifFalse:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18931
                    (type == #pointerEnter:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18932
                        id := jMouseEventClass instVarNamed: 'MOUSE_ENTERED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18933
                    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18934
                        (type == #pointerLeave:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18935
                            id := jMouseEventClass instVarNamed: 'MOUSE_EXITED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18936
                        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18937
                            (type == #buttonMultiPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18938
                                id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18939
                                clickCount := 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18940
                            ] ifFalse: [ self halt. ]
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18941
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18942
"/                        ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18943
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18944
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18945
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18946
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18947
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18948
        jEv := jMouseEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18949
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18950
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18951
        jEv instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18952
        jEv instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18953
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18954
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18955
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18956
    (type == #configureX:y:width:height:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18957
        view := anEvent view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18958
        x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18959
        y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18960
        w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18961
        h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18962
        resized := (w ~~ view width or: [ h ~~ view height ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18963
        moved := (x ~~ view left or: [ y ~~ view top ]).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18964
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18965
"/        (view isTopView or:[view isPopUpView]) ifTrue:[
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18966
        "/ view must update its origin/extent.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18967
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18968
        view dispatchEvent: anEvent.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18969
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18970
"/        ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18971
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18972
        "/ must change the components extent
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18973
        "/ is there no cleaner way to do this ?
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18974
        "/
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 18975
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18976
        view isTopView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18977
            view isPopUpView ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18978
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18979
                "/ sigh - don't include the menu.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18980
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18981
                menu := self topViewsMenu: view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18982
                menu notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18983
                    "/ must add the menus height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18984
                    h := h - menu height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18985
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18986
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18987
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18988
        jWin instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18989
        jWin instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18990
        jWin instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18991
        jWin instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18992
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18993
        moved ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18994
            id := (jComponentEventClass instVarNamed: 'COMPONENT_MOVED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18995
            jEv1 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18996
            jEv1 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18997
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18998
        resized ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18999
            id := (jComponentEventClass instVarNamed: 'COMPONENT_RESIZED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19000
            jEv2 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19001
            jEv2 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19002
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19003
        jEv1 isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19004
            jEv2 isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19005
            ^ Array with: jEv2
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19006
        ] ifFalse: [ jEv2 isNil ifTrue: [ ^ Array with: jEv1 ] ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19007
        ^ Array with: jEv1 with: jEv2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19008
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19009
    (type == #focusIn) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19010
        "/ 'focusIn' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19011
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19012
        id := (jComponentEventClass instVarNamed: 'FOCUS_GAINED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19013
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19014
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19015
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19016
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19017
    (type == #focusOut) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19018
        "/ 'focusOut' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19019
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19020
        id := (jComponentEventClass instVarNamed: 'FOCUS_LOST').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19021
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19022
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19023
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19024
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19025
    (type == #mapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19026
        "/ 'mapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19027
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19028
        id := (jComponentEventClass instVarNamed: 'COMPONENT_SHOWN').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19029
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19030
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19031
"/        y := eventArgs at:2.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19032
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19033
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19034
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19035
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19036
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19037
    (type == #unmapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19038
        "/ 'unmapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19039
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19040
        id := (jComponentEventClass instVarNamed: 'COMPONENT_HIDDEN').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19041
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19042
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19043
"/        y := eventArgs at:2.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19044
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19045
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19046
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19047
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19048
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19049
    (type == #terminate) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19050
        jWindowEventClass := Java classForName: 'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19051
         "NEW
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19052
         id := (jWindowEventClass instVarNamed:'WINDOW_CLOSING').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19053
        " "OLD "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19054
        id := (jWindowEventClass instVarNamed: 'WINDOW_CLOSED').
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19055
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19056
        jEv := jWindowEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19057
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19058
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19059
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19060
    EventTrace == true ifTrue: [ ('JAVA: unhandled event:' , type) infoPrintCR. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19061
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19062
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19063
    "Created: / 6.1.1998 / 20:38:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19064
    "Modified: / 9.1.1999 / 09:29:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19065
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19066
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19067
delegatesTo:someOne
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19068
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19070
    "Created: / 25.9.1999 / 16:11:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19071
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19073
doWindowsEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19074
    "invoked in an endless loop by the WToolkit-eventLoop
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19075
     native method."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19076
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19077
    | sensor  event  more |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19078
    (JavaWindowGroup isNil or: [ KnownWindows isNil ]) ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19079
        "/ '*** eventThread: no windowGroup / views ...' printCR.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19080
        self halt: 'monitors are reimplemented, change me if you know how and why'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19081
        "self
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19082
            waitFor: FirstWindowCreationSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19083
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19084
            timeOut: nil."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19085
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19086
        "/ Delay waitForSeconds:0.1.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19087
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19088
        ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19089
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19090
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19091
    "/ wait for an event to arrive ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19092
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19093
    sensor := JavaWindowGroup sensor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19094
    [ sensor hasEvents or: [ sensor damageCount ~~ 0 ] ] whileFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19095
        EventTrace ifTrue: [ '*** eventThread waiting ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19096
        Processor activeProcess state: #eventWait.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19097
        self
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19098
            waitFor: sensor eventSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19099
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19100
            timeOut: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19101
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19102
    EventTrace ifTrue: [ '*** eventThread event arrived ...' printCR. ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19103
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19104
    "/ EventTrace := true
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19105
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19106
    more := true.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19107
    [ more ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19108
        sensor hasDamage ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19109
            EventTrace ifTrue: [ '*** eventThread: damage arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19110
            event := sensor nextDamage.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19111
        ] ifFalse: [ event := sensor nextEvent. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19112
        event isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19113
            EventTrace == true ifTrue: [ '*** eventThread: nil event ignored' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19114
            ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19115
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19116
        more := self processEvent: event
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19117
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19118
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19119
    "Created: / 06-01-1998 / 21:02:40 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19120
    "Modified: / 30-12-1998 / 19:21:36 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 19121
    "Modified: / 22-11-2011 / 13:22:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19122
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19123
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19124
processEvent: event
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19125
    | evQ  jEvents  jWToolKitClass  jWToolKit  jWinPeer  jWin  v  eventConsumed |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19126
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19127
    KnownWindows isNil ifTrue: [ ^ false ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19128
    v := event view.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19129
    jWinPeer := self jPeerForView: v.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19130
    jWinPeer isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19131
        v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19132
            "/ mhmh - an event for a JavaView,
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19133
            "/ which has no peer (anyMore ?)
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19134
            "/ should not happen.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19135
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19136
            "/ mhmh - an event for a subcomponent of an ST widget.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19137
            "/ let it be handled normally.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19138
            EventTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19139
                ('*** eventThread: ' , event type
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19140
                    , '-event for unknown java-view - passed to view.') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19141
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19142
            event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19143
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19144
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19145
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19146
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19147
    "/ change:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19148
    "/ in the previous version, events for ST/X widgets (i.e. buttons etc)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19149
    "/ where not passed to java, but instead forwarded directly to the widget
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19150
    "/ by the code below.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19151
    "/ This has changed, to pass it to Java, which eventually passes it to the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19152
    "/ peer via the handleEvent native method (unless the event got consumed).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19153
    "/ This is req'd to let java keep track of keyboard/mouse input for widgets.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19154
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19155
    (event isDamage and: [ v isJavaView ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19156
        "/    "/ most views handle their events themself (being ST/X views) ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19157
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19158
        "/    v class ~~ JavaView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19159
        "/"/        v class ~~ StandardSystemView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19160
        "/"/            EventTrace ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19161
        "/"/                    ('*** eventThread: event handled by view itself (' , v class name , ')') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19162
        "/"/            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19163
        "/"/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19164
        "/"/            ^ self.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19165
        "/"/        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19166
        "/        (event type == #'exposeX:y:width:height'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19167
        "/        or:[event type == #'graphicsExposeX:y:width:height']) ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19168
        "/            "/ send to view, but also handle in JAVA
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19169
        "/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19170
        "/        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19171
        "/    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19172
        (#( #mapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19173
         #unmapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19174
         #configureX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19175
         #exposeX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19176
         #graphicsExposeX:y:width:height: ) includes: event type) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19177
            event sendEventWithFocusOn: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19178
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19179
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19180
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19181
    "/ what a kludge - some events are passed back to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19182
    "/ ST via the WComponent-handleEvent native method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19183
    "/ However, repaints are not.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19184
    "/ In order to let ST widgets do the drawing,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19185
    "/ selectively filter exposeEvents from Java ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19186
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19187
    eventConsumed := false.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19188
    v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19189
        "/ all events handled by Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19190
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19191
        eventConsumed := true.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19192
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19193
        "/ let widget handle it.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19194
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19195
        event view dispatchEvent: event.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19196
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19197
        "/ some are not passed to Java ...
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19198
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19199
        event isDamage ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19200
            (v isKindOf: Button) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19201
            (v isKindOf: TextView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19202
            (v isKindOf: Label) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19203
            (v isKindOf: ComboBoxView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19204
            (v isKindOf: ScrollBar) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19205
            (v isKindOf: Scroller) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19206
            (v isKindOf: MenuPanel) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19207
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19208
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19209
    jWin := jWinPeer instVarNamed: 'target'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19210
    EventTrace ifTrue: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19211
        ('*** eventThread: event (' , event type , ') handled by JAVA: ')
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19212
            infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19213
        jWinPeer class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19214
        ' (' infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19215
        jWin class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19216
        ')' infoPrintCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19217
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19218
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19219
    "/ create an event
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19220
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19221
    jEvents := self awtEventsForEvent: event javaWindow: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19222
    jEvents isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19223
        EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19224
            ('*** eventThread: event ignored: ' , event type) printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19225
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19226
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19227
    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19228
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19229
"/    v superView isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19230
"/        ('*** eventThread: event ignored for topView: ' , event type) printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19231
"/        ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19232
"/    ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19233
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19234
    jWToolKitClass := self classForName: 'java.awt.Toolkit'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19235
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19236
    "/ jWToolKit := jWToolKitClass perform:#getDefaultToolkit.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19237
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19238
    jWToolKit := jWToolKitClass
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19239
                performStatic: #'getDefaultToolkit()Ljava/awt/Toolkit;'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19240
    jEvents do: [
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19241
        :jEv |
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19242
        jEv instVarNamed: 'source' put: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19243
        jEv instVarNamed: 'consumed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19244
        eventConsumed ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19245
            "/ the first gets the original event as data
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19246
            jEv instVarNamed: 'data' put: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19247
            eventConsumed := true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19248
        ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19249
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19250
        "/ post it (them) to the event queue
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19251
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19252
        EventTrace == true ifTrue: [ 'postEvent to Java ...' printCR. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19253
        jWToolKit "class" perform: #'postEvent(Ljava/awt/AWTEvent;)V' with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19254
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19255
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19257
    "Created: / 6.1.1998 / 20:36:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19258
    "Modified: / 10.12.1998 / 19:36:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19259
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19260
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19261
!JavaVM::Performance class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19262
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19263
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19264
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19265
    A helper class to keep performance counters for JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19266
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19267
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19268
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19269
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19270
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19271
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19272
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19273
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19274
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19275
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19276
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19277
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19278
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19279
!JavaVM::Performance class methodsFor:'instance creation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19280
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19281
for: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19282
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19283
    ^self new setVM: aJavaVM.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19284
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19285
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19286
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19287
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19288
!JavaVM::Performance methodsFor:'accessing-counters'!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19289
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19290
get: name
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19291
    "Return the value of given performance counter."
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19292
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19293
    ^self set: name to: -1
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19294
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19295
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19296
monitorEnterCount: fatOnly
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19297
    "Return the number of monitor enter operations.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19298
     If fatOnly is true, return only those that involves
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19299
     fat-lock enter (i.e,, uses JavaMonitor, not thinlock)"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19300
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19301
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19302
    extern unsigned int __monitorEnterCount(int fat, int new);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19303
    RETURN ( __MKUINT ( __monitorEnterCount( fatOnly == true ? 1 : 0, -1 ) ) )
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19304
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19305
    ^ 0
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19306
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19307
    "Created: / 28-08-2012 / 10:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19308
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19309
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19310
monitorExitCount: fatOnly
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19311
    "Return the number of monitor enter operations.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19312
     If fatOnly is true, return only those that involves
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19313
     fat-lock enter (i.e,, uses JavaMonitor, not thinlock)"
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19314
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19315
%{
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19316
    extern unsigned int __monitorEnterCount(int fat, int new);
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19317
    RETURN ( __MKUINT ( __monitorEnterCount( fatOnly == true ? 1 : 0, -1 ) ) )
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19318
%}.
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19319
    ^ 0
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19320
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19321
    "Created: / 28-08-2012 / 10:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19322
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19323
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19324
set: name to: newValue
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19325
    "Set and return the value of given performance counter.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19326
     If newValue >= 0, performance counter is set to given
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19327
     value and previous value is returned. If newValue < 0,
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19328
     then the current value is returned"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19329
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19330
    | value |
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19331
%{
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19332
    extern OBJ __javaPerfCounter(OBJ _name, OBJ _newValue );
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19333
    value =  __javaPerfCounter( name, newValue );
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19334
%}.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19335
    value isSymbol ifTrue:[
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19336
        self error: value.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19337
        ^nil
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19338
    ].
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19339
    ^value
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19340
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19341
! !
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19342
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19343
!JavaVM::Performance methodsFor:'initialization'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19344
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19345
setVM: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19346
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19347
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19348
    itself, not its instance)"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19349
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19350
    vm := aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19351
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19352
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19353
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19354
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19355
!JavaVM::Performance methodsFor:'orinting-streams'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19356
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19357
printOpenExternalStream: stream number: index on: output
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19358
    "Print info about given external stream to output. Return true,
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19359
     if the instance is executor, false otherwise"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19360
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19361
    | executor |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19362
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19363
    executor := ((3 to: stream class instSize) allSatisfy:[:index|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19364
        index == 6 or:[index == 7 or:[(stream instVarAt: index) isNil]]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19365
    ]).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19366
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19367
    '%-4d %-30s %-15s %s' printf:{
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19368
        index .
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19369
        stream class name.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19370
        executor ifTrue:['(executor)'] ifFalse:[(self printOpenExternalStreamIdentificationOf: stream)].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19371
        executor ifTrue:[''] ifFalse:[stream isFileStream ifTrue:[stream pathName ? '??? no pathName ???'] ifFalse:['']]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19372
    } on: output.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19373
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19374
    ^ executor
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19375
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19376
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19377
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19378
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19379
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19380
    "Created: / 14-08-2012 / 01:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19381
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19382
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19383
printOpenExternalStreamIdentificationOf:stream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19384
    | zc oft |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19385
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19386
    (oft := Smalltalk at:#'JavaVM:OpenFileTable') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19387
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19388
        idx := oft identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19389
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19390
            ^ 'VM   OFT[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19391
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19392
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19393
    (zc := Smalltalk at:#'JavaVM:ZipCache') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19394
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19395
        idx := zc identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19396
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19397
            ^ 'VM   ZC[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19398
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19399
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19400
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19401
     ((Smalltalk at:#'Java:SourceCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19402
        each == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19403
            ^ 'Java SC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19404
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19405
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19406
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19407
    ((Smalltalk at:#'JavaClassReader:JavaArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19408
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19409
            ^ 'JCR  JAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19410
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19411
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19412
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19413
    ((Smalltalk at:#'Java:SourceArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19414
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19415
            ^ 'Java SAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19416
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19417
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19418
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19419
    ^''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19420
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19421
    "Created: / 14-08-2012 / 01:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19422
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19423
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19424
printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19425
    ^self printOpenExternalStreamsOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19426
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19427
    "Created: / 14-08-2012 / 01:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19428
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19429
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19430
printOpenExternalStreamsOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19431
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19432
    | nOpenStreams nExecutors |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19433
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19434
    aStream nextPutLine: '=== JavaVM open external stream statistics ==='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19435
    aStream nextPutLine: Timestamp now printString.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19436
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19437
    nOpenStreams := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19438
    nExecutors := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19439
    ExternalStream allSubInstancesDo:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19440
        each isOpen ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19441
            nOpenStreams := nOpenStreams + 1.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19442
            (self printOpenExternalStream: each number: nOpenStreams on: aStream) ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19443
                nExecutors := nExecutors + 1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19444
            ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19445
            aStream cr.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19446
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19447
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19448
    aStream cr.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19449
    aStream nextPutLine:
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19450
        ('SUMMARY: open=%1, executors=%4, java.io=%2, java.util.zip=%3'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19451
            bindWith: nOpenStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19452
                with: (((Smalltalk at:#'JavaVM:OpenFileTable') ? #()) inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19453
                with: (((Smalltalk at:#'JavaVM:ZipCache') ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19454
                with: nExecutors
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19455
        ).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19456
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19457
    aStream nextPutLine: '=============================================='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19458
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19459
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19460
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19461
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19462
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19463
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19464
    "Created: / 14-08-2012 / 00:48:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19465
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19466
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19467
!JavaVM::Performance methodsFor:'printing-counters'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19468
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19469
printCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19470
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19471
    self printCountersOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19472
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19473
    "Created: / 14-08-2012 / 00:43:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19474
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19475
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19476
printCountersOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19477
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19478
    aStream nextPutLine: '=== JavaVM performance statistics ============'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19479
    aStream nextPutLine: Timestamp now printString.
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19480
    self printCounters_ExecutionOn: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19481
    aStream cr.
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19482
    self printCounters_CompilationOn: aStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19483
    aStream cr.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19484
    self printCounters_MonitorOn: aStream.
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19485
    aStream cr.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19486
    self printCounters_TopTenNativesOn: aStream.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19487
    aStream nextPutLine: '=============================================='.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19488
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19489
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19490
    "
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19491
        JavaVM performance printCounters
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19492
    "
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19493
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19494
    "Created: / 14-08-2012 / 00:43:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19495
    "Modified: / 27-10-2012 / 18:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19496
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19497
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19498
printCounters_CompilationOn: aStream
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19499
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19500
    self printCounterGroup:'Just-In-Time Compilation' on: aStream.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19501
    self printCounter:'methodsCompiled' on: aStream labeled: 'methods compiled'.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19502
    self printCounter:'methodsCompiledAndBailedOut' on: aStream labeled: 'methods compiled (failed)'.
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19503
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19504
    "Created: / 15-10-2012 / 15:33:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19505
!
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19506
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19507
printCounters_ExecutionOn: aStream
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19508
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19509
    self printCounterGroup:'Execution' on: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19510
    self printCounter:'methodsInterpreted' on: aStream labeled: 'methods (interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19511
    self printCounter:'bytecodesInterpreted' on: aStream labeled: 'bytecodes (interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19512
    self printCounter:'bytecodesInterpretedWrap' on: aStream labeled: 'bytecodes wrap(interpreted)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19513
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19514
    "Created: / 15-10-2012 / 15:33:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19515
!
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19516
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19517
printCounters_MonitorOn: aStream
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19518
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19519
    self printCounterGroup:'Monitors' on: aStream.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19520
    self printCounter:'monitorEnterCount' on: aStream labeled: 'MONITOR ENTER'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19521
    self printCounter:'monitorEnterCountFat' on: aStream labeled: 'MONITOR ENTER (fat)'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19522
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19523
    self printCounter:'monitorExitCount' on: aStream labeled: 'MONITOR EXIT'.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19524
    self printCounter:'monitorExitCountFat' on: aStream labeled: 'MONITOR EXIT (fat)'.
1691
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19525
826f8d7dc0df thinlocks reintegrated
vranyj1
parents: 1687
diff changeset
 19526
    "Created: / 28-08-2012 / 10:42:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19527
    "Modified: / 15-10-2012 / 15:31:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19528
!
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19529
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19530
printCounters_Top: n nativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19531
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19532
    | nativesSorted  |
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19533
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19534
    self printCounterGroup:'top ', n printString , ' (unoptimized) natives' on: aStream.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19535
    nativesSorted := JavaNativeMethod allInstances asSortedCollection:
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19536
                        [:a :b| a nCalls > b nCalls ].
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19537
    1 to: n do:[:idx|
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19538
        | m |
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19539
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19540
        m := nativesSorted at: idx.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19541
        aStream nextPutAll: (m nCalls printStringRadix:10 size:8 fill:Character space).
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19542
        aStream nextPutAll:'   '.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19543
        aStream
1749
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19544
            nextPutAll: m mclass name;
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19545
            nextPutAll: ' >> ';
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19546
            nextPutAll: m selector;
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19547
            cr.
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19548
    ]
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19549
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19550
    "Created: / 27-10-2012 / 18:09:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19551
!
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19552
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19553
printCounters_TopTenNativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19554
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19555
    self printCounters_Top: 10 nativesOn: aStream
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19556
2a942f354a94 - JavaNativeMethod
vranyj1
parents: 1746
diff changeset
 19557
    "Created: / 27-10-2012 / 18:12:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19558
! !
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19559
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19560
!JavaVM::Performance methodsFor:'printing-counters-private'!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19561
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19562
printCounter: name on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19563
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19564
    self printCounter: name on: stream labeled: name
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19565
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19566
    "Created: / 15-10-2012 / 15:28:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19567
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19568
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19569
printCounter: name on: stream labeled: label
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19570
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19571
    [
1735
cfc70062784f JavaVM callbacks to support JIT-compiled code
vranyj1
parents: 1733
diff changeset
 19572
        '  %-35s : %10d' printf: { label . (self get: name) } on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19573
    ] on: Error do:[
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19574
        '  %-35s : N/A' printf: { label } on: stream
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19575
    ].
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19576
    stream cr.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19577
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19578
    "Created: / 15-10-2012 / 15:25:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19579
!
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19580
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19581
printCounterGroup: gname on: stream
1720
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19582
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19583
    stream nextPut:$-; nextPut:$-; space; nextPutAll: gname; space; nextPut:$-; nextPut:$-; cr.
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19584
cfccd1438854 - generic support for Java performance counters
vranyj1
parents: 1716
diff changeset
 19585
    "Created: / 15-10-2012 / 15:29:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19586
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19587
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19588
!JavaVM::Reflection class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19589
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19590
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19591
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19592
    A helper class to deal with Java reflection
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19593
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19594
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19595
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19596
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19597
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19598
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19599
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19600
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19601
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19602
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19603
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19604
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19605
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19606
!JavaVM::Reflection class methodsFor:'instance creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19608
for: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19610
    ^self new setVM: aJavaVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19611
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19612
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19613
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19614
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19615
new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19616
    "return an initialized instance"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19618
    ^ self basicNew initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19619
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19620
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19621
!JavaVM::Reflection methodsFor:'debugging'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19622
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19623
returnNilIfMissing
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19624
    ^ returnNilIfMissing.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19625
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19626
    "Created: / 28-01-2011 / 15:14:37 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19629
returnNilIfMissing:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19630
    returnNilIfMissing:= aBoolean.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19632
    "Created: / 28-01-2011 / 15:25:35 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19633
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19634
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19635
!JavaVM::Reflection methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19637
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19638
    constantPoolMapping := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19639
    javaClasses := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19640
    javaArrayClasses := IdentityDictionary new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19641
    realMethods := OrderedCollection new.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19642
    javaMethodsPerMethod := Dictionary new
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19644
    "Created: / 21-12-2010 / 19:46:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19645
    "Modified: / 09-02-2011 / 00:24:28 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19646
    "Modified: / 05-12-2011 / 09:56:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19647
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19649
setVM: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19650
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19651
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19652
    itself, not its instance)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19654
    vm := aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19656
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19657
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19659
!JavaVM::Reflection methodsFor:'reflection - classes'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19660
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19661
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19662
    ^javaArrayClasses at: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19663
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19664
    "Created: / 05-07-2012 / 23:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19665
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19666
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19667
classForJavaClassObject: aJavaClassObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19668
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19669
        Given an instance of java.lang.Class, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19670
        real (Java) class associated with it. The instance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19671
        of java.lang.Class should be first created by myself
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19672
        (by sending #javaClassObjectForClass:)"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19673
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19674
    (javaClasses at: aJavaClassObject ifAbsent: [ 123 ])
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19675
        == (JavaVM classNamed: 'stx/libjava/tests/junir/JUnit3Tests')
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19676
            ifTrue: [ self breakPoint: #jv ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19677
    ^ javaClasses at: aJavaClassObject
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19678
        ifAbsent: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19679
            vm internalError: 'No class associated with given java.lang.Class!!'.
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19680
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19681
            "/Please, no nils
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19682
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19683
            self returnNilIfMissing ifTrue: nil
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19684
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19686
    "Created: / 28-01-2011 / 15:22:39 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19687
    "Modified: / 05-02-2011 / 20:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 19688
    "Modified: / 21-10-2011 / 13:41:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19689
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19690
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19691
javaClassObjectArrayForClasses: classes
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19692
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19693
        Answers an instance of java.lang.Class[] for given
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19694
        real (Java) classes."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19695
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19696
    | array |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19697
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19698
    array := (vm classForName: 'java.lang.Class') javaArrayClass
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19699
                new: classes size.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19700
    classes isNilOrEmptyCollection ifTrue: [ ^ array ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19701
    classes
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19702
        withIndexDo: [:cls :idx | array at: idx put: (self javaClassObjectForClass: cls) ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19703
    ^ array
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19705
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19706
    "Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19707
    "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19708
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19709
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19710
javaClassObjectForClass:aClass
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19711
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19712
    ^self javaClassObjectForClass:aClass init: true.
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19713
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19714
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19715
    "Modified: / 12-08-2011 / 19:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19716
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19717
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19718
javaClassObjectForClass: aClass init: init
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19719
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19720
        Answers an instance of java.lang.Class for given
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19721
        real (Java) class."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19722
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19723
    | javaClassObj |
1030
9f87a1830611 fixed bug in java registry and we BOOT :)
hlopkmar
parents: 1029
diff changeset
 19724
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19725
    self assert: aClass isBehavior message: 'aClass is not behavior'.
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19726
    self assert: aClass ~~ Array message: 'aClass should not be Array (old impl)'.
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19727
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
 19728
    javaClasses at: aClass ifPresent: [:javaClassObj | ^ javaClassObj ].
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19729
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19730
    "/ class must be initialized (with all of its superclasses ?).
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19731
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19732
    "/ false ifTrue: [ aClass isJavaClass ifTrue: [ aClass classInit ]. ].
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19733
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19734
    "/ Here, install Java lookup as Java may send a messages to that
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19735
    "/ object
1675
fe6aa1d083cf - JavaVM>>javaClassObjectForClass: fix: do not install JavaLookup if the class is for one of java primitive types
vranyj1
parents: 1656
diff changeset
 19736
    (aClass isJavaClass not and:[aClass isJavaArrayClass not and:[aClass isJavaPrimitiveType not]]) ifTrue:[
1677
78ab46cd3d00 Fixes in interop (caused VM crash, dunno why)
vranyj1
parents: 1675
diff changeset
 19737
        aClass == Object ifTrue:[ self halt. ].
1656
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19738
        aClass lookupObject: JavaLookup instance.
c6fee8f3a640 - fixes for Groovy-Smalltalk interop - SmalltalkEvaluator example works
vranyj1
parents: 1649
diff changeset
 19739
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19740
    javaClassObj := (vm classForName: 'java.lang.Class') new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19741
    self rememberJavaClassObject: javaClassObj for: aClass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19742
    ^ javaClassObj
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19743
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19744
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19745
    "Created: / 12-08-2011 / 19:07:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19746
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19747
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19748
javaClassObjectForClassNamed: className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19749
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19750
        Answers an instance of java.lang.Class for given
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19751
        (java) class name. The className may be name of primitive
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19752
        type, i.e. 'int', 'double'."
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19753
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19754
    | cls |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19755
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19756
    cls := JavaDescriptor baseTypesByTypeName at: className
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19757
                ifAbsent: [ vm classForName: className ].
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19758
    ^ self javaClassObjectForClass: cls.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19760
    "Created: / 03-02-2011 / 21:12:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19761
    "Modified: / 08-04-2011 / 14:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19762
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19763
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19764
rememberJavaClassObject: jclass for: class
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19765
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19766
    javaClasses at: class put: jclass.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19767
    javaClasses at: jclass put: class.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19768
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19769
    "Created: / 05-12-2011 / 09:57:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19770
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19772
!JavaVM::Reflection methodsFor:'reflection - constant pool'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19773
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19774
constantPoolFor:javaConstantPoolObject
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19775
    ^ constantPoolMapping at:javaConstantPoolObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19776
        ifAbsent:[self error:'Given ConstantPool was not created by JVM']
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19777
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19778
    "Created: / 21-12-2010 / 19:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19779
    "Modified: / 28-01-2011 / 14:56:54 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19780
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19782
javaConstantPoolObjectFor: aConstantPool
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19784
    ^constantPoolMapping at: aConstantPool ifAbsent:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19785
        [| javaConstantPoolObject |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19786
        javaConstantPoolObject := (vm classForName:'sun.reflect.ConstantPool') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19787
        constantPoolMapping at: aConstantPool put: javaConstantPoolObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19788
        constantPoolMapping at: javaConstantPoolObject put: aConstantPool.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19789
        javaConstantPoolObject]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19791
    "Created: / 21-12-2010 / 19:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19792
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19793
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19794
!JavaVM::Reflection methodsFor:'reflection - methods & ctors'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19795
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19796
classForJavaConstructorObject:constructor
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19797
     "given a java.lang.reflect.Constructor, return the corresponding class for it."
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19798
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19799
    | jclass |
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19800
    jclass := constructor instVarNamed: #clazz.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19801
    ^self classForJavaClassObject: jclass.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19802
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19803
    "Created: / 22-08-2012 / 12:23:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19804
!
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19805
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19806
javaConstructorObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19807
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19808
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19809
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19810
    | jCtor |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19811
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19812
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19814
    jCtor := (Java classForName:'java.lang.reflect.Constructor') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19815
    self javaMethodObjectLikeSlotsInto: jCtor forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19816
    self rememberJavaMethodObject: jCtor for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19818
    ^ jCtor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19820
    "Created: / 09-02-2011 / 10:28:12 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19821
    "Modified: / 05-12-2011 / 10:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19822
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19823
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19824
javaMethodObjectForMethod:method
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19825
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19826
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19827
     | jMethod |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19828
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19829
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19830
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19831
    jMethod := (Java classForName:'java.lang.reflect.Method') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19832
    self javaMethodObjectLikeSlotsInto: jMethod forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19833
    self rememberJavaMethodObject: jMethod for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19834
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19835
    jMethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19836
        instVarNamed: #name       put: (self javaStringObjectForString: (method selector upTo:$() interned: true);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19837
        instVarNamed: #returnType put: (method descriptor returnClassObject);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19838
        instVarNamed: #annotationDefault put: (method annotations default bytes);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19840
        yourself.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19842
    ^jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19843
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19844
    "Created: / 09-02-2011 / 10:29:46 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19845
    "Modified: / 05-12-2011 / 10:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19846
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19847
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19848
javaMethodObjectLikeSlotsInto: jMethod forMethod: method
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19849
    "
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19850
       Fill in slots of given instance of java.lang.Method or
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19851
       java.lang.Constructor"
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19852
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19853
    | desc |
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19854
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19855
    desc := method descriptor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19856
    jMethod
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19857
        instVarNamed: #clazz put: (self javaClassObjectForClass: method javaClass);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19858
        instVarNamed: #slot put: 0;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19859
        instVarNamed: #modifiers put: method accessFlags;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19860
        instVarNamed: #parameterTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19861
            put: (self javaClassObjectArrayForClasses: desc parameterClasses);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19862
        instVarNamed: #exceptionTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19863
            put: (self javaClassObjectArrayForClasses: method javaExceptionTable);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19864
        instVarNamed: #annotations put: (method annotations runtimeVisible bytes);
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19865
        yourself.
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19866
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19867
    method signature notNil ifTrue:[
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19868
        jMethod
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19869
            instVarNamed: #signature
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19870
            put: (self javaStringObjectForString: method signature interned: true)
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19871
    ].
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19872
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19873
    ^ jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19874
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19875
    "Created: / 11-02-2011 / 06:44:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19876
    "Modified: / 04-06-2011 / 17:17:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19877
    "Modified: / 04-12-2011 / 19:40:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19878
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19879
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19880
methodForJavaConstructorObject:constructor
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19881
     "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19882
      it."
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19883
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19884
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19885
    slot := constructor instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19886
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19887
"/    ^realMethods at: slot ifAbsent:[self error: 'No ctor found for java ctor object'].
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19888
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19889
"/    |class signature|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19890
"/    class := self classForJavaClassObject:(constructor instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19891
"/    signature := Java as_ST_String:(constructor instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19892
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19893
"/        mthd signature = signature ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19894
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19895
"/        ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19896
"/    ].
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19897
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19898
    "Created: / 09-02-2011 / 10:36:07 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19899
    "Modified: / 01-08-2012 / 11:05:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19900
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19901
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19902
methodForJavaMethodObject:jmethod
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19903
     "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19904
         Given an instance of java.lang.reflect.Method, answers
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19905
         real method associated with it.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19906
    "
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19907
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19908
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19909
    slot := jmethod instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19910
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19911
"/    ^realMethods at: slot ifAbsent:[self error: 'No method found for java method object'].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19912
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19913
"/    |class name signature |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19914
"/
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19915
"/    class := self classForJavaClassObject:(aJavaMethodObject instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19916
"/    name := Java as_ST_String:(aJavaMethodObject instVarNamed:#name).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19917
"/    signature := Java as_ST_String:(aJavaMethodObject instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19918
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19919
"/        (mthd name = name and:[mthd signature = signature]) ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19920
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19921
"/        ]
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19922
"/    ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19923
"/    self assert: false description: 'No such method, malformed java.lang.reflect.Method object?'.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19924
"/    ^nil.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19925
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19926
    "Created: / 09-02-2011 / 10:32:14 / Marcel Hlopko <hlopik@gmail.com>"
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19927
    "Modified: / 01-08-2012 / 11:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19928
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19929
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19930
rememberJavaMethodObject: jmethod for: method
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19931
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19932
    javaMethodsPerMethod at: method put: jmethod.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19933
    realMethods add: method.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19934
    jmethod instVarNamed: #slot put: realMethods size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19935
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19936
    "Created: / 05-12-2011 / 10:00:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19937
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19939
!JavaVM::Reflection methodsFor:'reflection - other'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19940
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19941
javaStringObjectForString:string
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19942
    ^ self javaStringObjectForString: string interned: false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19944
    "Created: / 09-02-2011 / 10:34:57 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19945
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19946
1816
8f984969bf09 Reenable finalizer
vranyj1
parents: 1808
diff changeset
 19947
javaStringObjectForString:string interned:intern
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19948
    | s |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19949
    s := Java as_String: string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19950
    ^intern ifTrue:[Java intern: s] ifFalse:[s]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19951
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19952
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19953
    "Created: / 09-02-2011 / 10:34:29 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19954
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19956
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19957
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19958
version
1864
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19959
    ^ '$Header$'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19960
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19961
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19962
version_CVS
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
 19963
    ^ '§Header: /cvs/stx/stx/libjava/JavaVM.st,v 1.186 2011/08/22 14:49:28 vrany Exp §'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19964
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19965
1864
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19966
version_HG
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19967
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19968
    ^ '$Changeset: <not expanded> $'
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19969
!
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19970
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19971
version_SVN
1864
60a8dc26c8c6 Updated from HG
vranyj1
parents: 1842
diff changeset
 19972
    ^ '§Id§'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19973
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19974
924
7e66564a2302 fix for native sun.reflect.NativeMethodAccessorImpl.invoke0()
vranyj1
parents: 923
diff changeset
 19975
JavaVM initialize!