src/JavaVM.st
author vranyj1
Wed, 22 Aug 2012 11:30:10 +0000
branchjk_new_structure
changeset 1648 ba54c818827d
parent 1639 1397423bcd97
child 1649 0af82006c0b2
permissions -rw-r--r--
- more reflection stuff moved to JavaMirror - initial support for Java reflection on alien classes
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
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
    51
		ClassRegistry SystemClassLoader ExtClassLoader StartupTime
1185
f13a7d1c7385 process javaProtocol
hlopkmar
parents: 1183
diff changeset
    52
		FinalizationEnabled FinalizationLobby ParkUnparkSemaphores
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
    53
		ThreadInterrupts EagerResolvingEnabled OldspaceIncreased
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
    54
		PerfCounters AboutToSnapshotAction SnapshotFinishedAction'
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
    55
	poolDictionaries:'JavaConstants'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    56
	category:'Languages-Java-Support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    57
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    58
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    59
Object subclass:#Performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    60
	instanceVariableNames:'vm'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    61
	classVariableNames:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    62
	poolDictionaries:''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    63
	privateIn:JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    64
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
    65
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    66
Object subclass:#Reflection
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    67
	instanceVariableNames:'vm constantPoolMapping javaClasses javaArrayClasses
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
    68
		javaMethodsPerMethod returnNilIfMissing realMethods'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    69
	classVariableNames:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    70
	poolDictionaries:''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    71
	privateIn:JavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    72
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    73
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    74
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    75
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    76
copyright
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    77
"
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    78
 COPYRIGHT (c) 1996-2011 by Claus Gittinger
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    79
1155
vranyj1
parents: 1152
diff changeset
    80
 New code and modifications done at SWING Research Group [1]:
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    81
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    82
 COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    83
                            SWING Research Group, Czech Technical University in Prague
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    84
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    85
 This software is furnished under a license and may be used
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    86
 only in accordance with the terms of that license and with the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    87
 inclusion of the above copyright notice.   This software may not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    88
 be provided or otherwise made available to, or used by, any
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    89
 other person.  No title to or ownership of the software is
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    90
 hereby transferred.
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    91
1155
vranyj1
parents: 1152
diff changeset
    92
 [1] Code written at SWING Research Group contains a signature
vranyj1
parents: 1152
diff changeset
    93
     of one of the above copright owners. For exact set of such code,
vranyj1
parents: 1152
diff changeset
    94
     see the differences between this version and version stx:libjava
1152
040cba55a7d2 Copyright fixes
vranyj1
parents: 1151
diff changeset
    95
     as of 1.9.2010
877
f5a5b93e1c78 Cleanup phase 1
vranyj1
parents: 873
diff changeset
    96
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
    97
"
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
documentation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   101
"Runtime support and environment for Java. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   102
You shouldn't communicate with JavaVM directly, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   103
use Java class instead. JavaVM is layer between
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   104
the native interpret and the rest of the system.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   105
JavaVM implements native java virtual machine 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   106
methods called by interpret, hides java primitive 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   107
types handling, and gives the ST world ways to 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   108
control class loading and reflection"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   109
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   110
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   111
nativeMethods
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   112
"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   113
    all native methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   115
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   116
            m isNative 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   117
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   119
    implemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   120
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   121
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   122
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   124
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   125
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   126
                JavaVM class implements:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   127
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   128
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   129
            ]
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
    unimplemented methods:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   134
        JavaMethod allSubInstances select:[:m |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   135
            |sel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   136
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   137
            m isNative ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   138
                sel := ('_' , m javaClass lastName , '_' , m name , ':') asSymbol.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   139
                (JavaVM class implements:sel) not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   140
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   141
                false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   142
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   143
        ]    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   144
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   146
    list of all native methods as in jdk1.1.3:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   148
      X - implemented
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   149
      * - implemented to be validated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   150
      x - implemented with limited functionality
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   151
      o - implemented as dummy (no functionality)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   153
    X (Math::double sin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   154
    X (Math::double cos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   155
    X (Math::double tan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   156
    X (Math::double asin (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   157
    X (Math::double acos (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   158
    X (Math::double atan (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   159
    X (Math::double exp (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   160
    X (Math::double log (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   161
    X (Math::double sqrt (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   162
      (Math::double IEEEremainder (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   163
    X (Math::double ceil (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   164
    X (Math::double floor (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   165
      (Math::double rint (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   166
      (Math::double atan2 (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   167
    X (Math::double pow (double double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   169
    X (Class::java.lang.Class forName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   170
    X (Class::java.lang.Object newInstance ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   171
    * (Class::boolean isInstance (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   172
    X (Class::boolean isAssignableFrom (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   173
    X (Class::boolean isInterface ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   174
      (Class::boolean isArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   175
    X (Class::boolean isPrimitive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   176
    X (Class::java.lang.String getName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   177
    X (Class::java.lang.ClassLoader getClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   178
    X (Class::java.lang.Class getSuperclass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   179
      (Class::java.lang.Class[] getInterfaces ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   180
      (Class::java.lang.Class getComponentType ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   181
      (Class::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   182
      (Class::java.lang.Object[] getSigners ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   183
      (Class::void setSigners (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   184
    X (Class::java.lang.Class getPrimitiveClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   185
      (Class::java.lang.reflect.Field getField0 (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   186
      (Class::java.lang.reflect.Field[] getFields0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   187
    X (Class::java.lang.reflect.Method getMethod0 (java.lang.String java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   188
    X (Class::java.lang.reflect.Method[] getMethods0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   189
      (Class::java.lang.reflect.Constructor[] getConstructors0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   190
      (Class::java.lang.reflect.Constructor getConstructor0 (java.lang.Class[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   192
    X (InetAddressImpl::java.lang.String getLocalHostName ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   193
    X (InetAddressImpl::void makeAnyLocalAddress (java.net.InetAddress))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   194
    X (InetAddressImpl::byte[][] lookupAllHostAddr (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   195
      (InetAddressImpl::java.lang.String getHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   196
    X (InetAddressImpl::int getInetFamily ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   197
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   198
    X (ResourceBundle::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   200
    X (System::void setIn0 (java.io.InputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   201
    X (System::void setOut0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   202
    X (System::void setErr0 (java.io.PrintStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   203
    X (System::long currentTimeMillis ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   204
    X (System::void arraycopy (java.lang.Object int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   205
    X (System::int identityHashCode (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   206
    X (System::java.util.Properties initProperties (java.util.Properties))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   208
    X (Thread::java.lang.Thread currentThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   209
    X (Thread::void yield ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   210
    X (Thread::void sleep (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   211
    X (Thread::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   212
    X (Thread::boolean isInterrupted (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   213
    X (Thread::boolean isAlive ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   214
      (Thread::int countStackFrames ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   215
    X (Thread::void setPriority0 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   216
    X (Thread::void stop0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   217
    X (Thread::void suspend0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   218
    X (Thread::void resume0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   219
    * (Thread::void interrupt0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   221
      (String::java.lang.String intern ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   223
    X (Float::int floatToIntBits (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   224
    X (Float::float intBitsToFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   226
      (ObjectStreamClass::int getClassAccess (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   227
      (ObjectStreamClass::java.lang.String[] getMethodSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   228
      (ObjectStreamClass::int getMethodAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   229
      (ObjectStreamClass::java.lang.String[] getFieldSignatures (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   230
      (ObjectStreamClass::int getFieldAccess (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   231
      (ObjectStreamClass::java.io.ObjectStreamField[] getFields0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   232
      (ObjectStreamClass::long getSerialVersionUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   233
      (ObjectStreamClass::boolean hasWriteObject (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   234
      (ObjectInputStream::java.lang.Class loadClass0 (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   235
      (ObjectInputStream::void inputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   236
      (ObjectInputStream::java.lang.Object allocateNewObject (java.lang.Class java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   237
      (ObjectInputStream::java.lang.Object allocateNewArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   238
      (ObjectInputStream::boolean invokeObjectReader (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   240
      (SecurityManager::java.lang.Class[] getClassContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   241
    X (SecurityManager::java.lang.ClassLoader currentClassLoader ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   242
      (SecurityManager::int classDepth (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   243
    X (SecurityManager::int classLoaderDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   244
      (SecurityManager::java.lang.Class currentLoadedClass0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   246
    X (ClassLoader::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   247
    X (ClassLoader::java.lang.Class defineClass0 (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   248
    X (ClassLoader::void resolveClass0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   249
    X (ClassLoader::java.lang.Class findSystemClass0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   250
    X (ClassLoader::java.io.InputStream getSystemResourceAsStream0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   251
      (ClassLoader::java.lang.String getSystemResourceAsName0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   252
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   253
    X (FileDescriptor::boolean valid ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   254
      (FileDescriptor::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   255
    X (FileDescriptor::java.io.FileDescriptor initSystemFD (java.io.FileDescriptor int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   257
    X (Object::java.lang.Class getClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   258
    X (Object::int hashCode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   259
    X (Object::java.lang.Object clone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   260
    X (Object::void notify ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   261
    X (Object::void notifyAll ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   262
    X (Object::void wait (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   264
    X (FileOutputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   265
    X (FileOutputStream::void openAppend (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   266
    X (FileOutputStream::void write (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   267
    X (FileOutputStream::void writeBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   268
    X (FileOutputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   269
    X (FileInputStream::void open (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   270
    X (FileInputStream::int read ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   271
    X (FileInputStream::int readBytes (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   272
      (FileInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   273
    X (FileInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   274
    X (FileInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   276
      (VM::int getState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   277
      (VM::boolean threadsSuspended ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   278
      (VM::void unsuspendThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   279
      (VM::void unsuspendSomeThreads ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   281
    X (File::boolean exists0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   282
    X (File::boolean canWrite0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   283
    X (File::boolean canRead0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   284
    X (File::boolean isFile0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   285
    X (File::boolean isDirectory0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   286
    X (File::long lastModified0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   287
    X (File::long length0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   288
    X (File::boolean mkdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   289
    X (File::boolean renameTo0 (java.io.File))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   290
    X (File::boolean delete0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   291
      (File::boolean rmdir0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   292
    X (File::java.lang.String[] list0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   293
      (File::java.lang.String canonPath (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   294
    X (File::boolean isAbsolute ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   296
      (ObjectOutputStream::void outputClassFields (java.lang.Object java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   297
      (ObjectOutputStream::boolean invokeObjectWriter (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   299
    X (Throwable::void printStackTrace0 (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   300
    X (Throwable::java.lang.Throwable fillInStackTrace ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   302
    X (Double::long doubleToLongBits (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   303
    X (Double::double longBitsToDouble (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   304
    X (Double::double valueOf0 (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   305
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   306
    X (Runtime::void exitInternal (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   307
    o (Runtime::void runFinalizersOnExit0 (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   308
    o (Runtime::java.lang.Process execInternal (java.lang.String[] java.lang.String[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   309
    X (Runtime::long freeMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   310
    X (Runtime::long totalMemory ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   311
    X (Runtime::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   312
      (Runtime::void runFinalization ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   313
      (Runtime::void traceInstructions (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   314
      (Runtime::void traceMethodCalls (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   315
    X (Runtime::java.lang.String initializeLinkerInternal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   316
    X (Runtime::java.lang.String buildLibName (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   317
    X (Runtime::int loadFileInternal (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   319
      (WDrawingSurfaceInfo::int lock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   320
      (WDrawingSurfaceInfo::void unlock ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   321
      (WDrawingSurfaceInfo::int getHWnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   322
      (WDrawingSurfaceInfo::int getHBitmap ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   323
      (WDrawingSurfaceInfo::int getPBits ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   324
      (WDrawingSurfaceInfo::int getHDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   325
      (WDrawingSurfaceInfo::int getDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   326
      (WDrawingSurfaceInfo::int getHPalette ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   328
    X (WDefaultFontCharset::boolean canConvert (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   329
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   330
      (ColorModel::void deletepData ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   331
    X (WToolkit::void init (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   332
    X (WToolkit::void eventLoop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   333
      (WToolkit::java.awt.image.ColorModel makeColorModel ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   334
    X (WToolkit::int getScreenResolution ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   335
    X (WToolkit::int getScreenWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   336
    X (WToolkit::int getScreenHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   337
      (WToolkit::void sync ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   338
    * (WToolkit::void beep ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   339
    X (WToolkit::void loadSystemColors (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   340
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   341
      (WPrintJob::void end ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   343
    X (WDialogPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   344
    X (WDialogPeer::void _show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   345
    X (WDialogPeer::void _hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   347
    X (WWindowPeer::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   348
    X (WWindowPeer::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   349
    X (WWindowPeer::void _setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   350
    X (WWindowPeer::void _setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   351
    X (WWindowPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   352
    o (WWindowPeer::void updateInsets (java.awt.Insets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   353
      (WWindowPeer::java.awt.Component getContainerElement (java.awt.Container int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   355
    X (WCanvasPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   357
    X (WTextAreaPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   358
    X (WTextAreaPeer::void insertText (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   359
      (WTextAreaPeer::void replaceText (java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   361
    X (WTextComponentPeer::java.lang.String getText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   362
    X (WTextComponentPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   363
    X (WTextComponentPeer::int getSelectionStart ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   364
    X (WTextComponentPeer::int getSelectionEnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   365
    X (WTextComponentPeer::void select (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   366
    X (WTextComponentPeer::void enableEditing (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   367
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   368
    X (WComponentPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   369
    X (WComponentPeer::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   370
    X (WComponentPeer::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   371
    X (WComponentPeer::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   372
    X (WComponentPeer::java.awt.Point getLocationOnScreen ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   373
    X (WComponentPeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   374
    o (WComponentPeer::void handleEvent (java.awt.AWTEvent))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   375
    o (WComponentPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   376
    X (WComponentPeer::void _setForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   377
    X (WComponentPeer::void _setBackground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   378
    o (WComponentPeer::void setFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   379
    o (WComponentPeer::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   380
    o (WComponentPeer::void setCursor (java.awt.Cursor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   381
    o (WComponentPeer::void start ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   382
      (WComponentPeer::void _beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   383
      (WComponentPeer::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   384
    o (WComponentPeer::void setZOrderPosition (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   386
    X (WFramePeer::void setMenuBar0 (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   387
    X (WFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   388
    X (WFramePeer::void _setIconImage (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   390
    o (WFontMetrics::boolean needsConversion (java.awt.Font sun.awt.FontDescriptor))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   391
    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
   392
      (WFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   393
      (WFontMetrics::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   395
    o (WChoicePeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   396
    o (WChoicePeer::void remove (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   397
    o (WChoicePeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   398
    X (WChoicePeer::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   399
    X (WChoicePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   401
    X (WLabelPeer::void setText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   402
    o (WLabelPeer::void setAlignment (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   403
    X (WLabelPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   405
    X (WMenuItemPeer::void _setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   406
    X (WMenuItemPeer::void create (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   407
    X (WMenuItemPeer::void enable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   408
    o (WMenuItemPeer::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   409
      (WMenuPeer::void addSeparator ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   410
      (WMenuPeer::void delItem (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   411
    X (WMenuPeer::void createMenu (sun.awt.windows.WMenuBarPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   412
      (WMenuPeer::void createSubMenu (sun.awt.windows.WMenuPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   414
      (WPopupMenuPeer::void createMenu (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   415
      (WPopupMenuPeer::void _show (java.awt.Event))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   416
      (WMenuBarPeer::void addMenu (java.awt.Menu))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   417
      (WMenuBarPeer::void delMenu (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   418
    X (WMenuBarPeer::void create (sun.awt.windows.WFramePeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   419
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   420
      (WCheckboxMenuItemPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   421
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   422
    X (WFileDialogPeer::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   423
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   424
    X (WCheckboxPeer::void setState (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   425
    X (WCheckboxPeer::void setCheckboxGroup (java.awt.CheckboxGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   426
      (WCheckboxPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   427
    X (WCheckboxPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   429
    X (WClipboard::void init ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   430
      (WClipboard::void setClipboardText (java.awt.datatransfer.StringSelection))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   431
      (WClipboard::java.lang.String getClipboardText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   433
    X (WListPeer::void addItem (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   434
    X (WListPeer::void delItems (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   435
    X (WListPeer::void select (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   436
      (WListPeer::void deselect (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   437
      (WListPeer::void makeVisible (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   438
    X (WListPeer::void setMultipleSelections (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   439
    X (WListPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   440
    X (WListPeer::boolean isSelected (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   442
    x (WScrollbarPeer::void _setValues (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   443
    x (WScrollbarPeer::void setLineIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   444
    x (WScrollbarPeer::void setPageIncrement (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   445
    x (WScrollbarPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   446
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   447
    x (ImageRepresentation::void offscreenInit (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   448
    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
   449
    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
   450
    x (ImageRepresentation::boolean finish (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   451
    X (ImageRepresentation::void imageDraw (java.awt.Graphics int int java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   452
    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
   453
    x (ImageRepresentation::void disposeImage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   454
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   455
    X (WTextFieldPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   456
    X (WTextFieldPeer::void setEchoCharacter (char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   457
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   458
    X (WScrollPanePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   459
    o (WScrollPanePeer::int getOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   460
      (WScrollPanePeer::void setInsets ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   461
      (WScrollPanePeer::void setScrollPosition (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   462
    x (WScrollPanePeer::int _getHScrollbarHeight ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   463
    x (WScrollPanePeer::int _getVScrollbarWidth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   464
    o (WScrollPanePeer::void setSpans (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   465
      (WScrollPanePeer::java.awt.Component getScrollChild ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   466
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   467
      (WEmbeddedFramePeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   468
    X (WButtonPeer::void setLabel (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   469
    X (WButtonPeer::void create (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   471
    x (WColor::java.awt.Color getDefaultColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   472
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   473
    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
   474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   475
    x (WGraphics::void createFromComponent (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   476
    x (WGraphics::void createFromGraphics (sun.awt.windows.WGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   477
      (WGraphics::void createFromPrintJob (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   478
      (WGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   479
    x (WGraphics::void imageCreate (sun.awt.image.ImageRepresentation))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   480
    x (WGraphics::void pSetFont (java.awt.Font))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   481
    X (WGraphics::void pSetForeground (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   482
      (WGraphics::void _dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   483
    x (WGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   484
    x (WGraphics::void setPaintMode ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   485
    x (WGraphics::void setXORMode (java.awt.Color))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   486
    o (WGraphics::java.awt.Rectangle getClipBounds ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   487
    o (WGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   488
      (WGraphics::void removeClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   489
    X (WGraphics::void clearRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   490
    X (WGraphics::void fillRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   491
    X (WGraphics::void drawRect (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   492
      (WGraphics::void drawSFChars (char[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   493
    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
   494
      (WGraphics::int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   495
      (WGraphics::void drawBytes (byte[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   496
    X (WGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   497
    X (WGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   498
    o (WGraphics::void drawRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   499
    o (WGraphics::void fillRoundRect (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   500
    X (WGraphics::void drawPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   501
      (WGraphics::void drawPolyline (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   502
    X (WGraphics::void fillPolygon (int[] int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   503
    x (WGraphics::void drawOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   504
    x (WGraphics::void fillOval (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   505
    x (WGraphics::void drawArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   506
    x (WGraphics::void fillArc (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   507
      (WGraphics::void print (sun.awt.windows.WComponentPeer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   508
      (WGraphics::void close (sun.awt.windows.WPrintJob))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   509
      (JPEGImageDecoder::void readImage (java.io.InputStream byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   510
    o (OffScreenImageSource::void sendPixels ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   511
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   513
    additional native methods added by microsoft (sigh):
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   514
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   515
    X (java.lang.String::boolean equals (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   516
    X (java.lang.String::int length (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   517
    o (java.lang.Runtime::void setInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   518
    o (java.lang.Runtime::void setOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   520
      (java.lang.String::int compareTo (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   521
      (java.lang.String::boolean equalsIgnoreCase (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   522
      (java.lang.String::int indexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   523
      (java.lang.String::boolean startsWith (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   524
      (java.lang.String::boolean regionMatches (int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   525
      (java.lang.String::boolean regionMatches (boolean int java.lang.String int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   526
      (java.lang.String::int lastIndexOf (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   527
      (java.lang.ClassLoader::void resolveClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   529
      (java.lang.ClassLoader::java.lang.Class createArrayClass (java.lang.String java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   530
      (java.io.PrintStream::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   531
      (java.lang.Runtime::boolean isOutputStreamLocalised (java.io.DataOutputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   532
      (java.lang.Runtime::boolean isInputStreamLocalised (java.io.DataInputStream))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   533
      (java.lang.ThreadGroup::void initMainThreadGroup0 (java.lang.ThreadGroup))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   534
      (java.lang.System::void validateSecurityManager (java.lang.SecurityManager))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   535
      (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
   536
      (java.io.ObjectOutputStream::void invokeDefaultWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   537
      (java.io.ObjectOutputStream::void invokeWriteObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   538
      (java.io.ObjectInputStream::void invokeDefaultReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   539
      (java.io.ObjectInputStream::void invokeReadObject (java.lang.Object java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   540
      (java.util.TimeZone::java.util.TimeZone getWin32TimeZone ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   541
      (java.net.InetAddress::java.lang.Object[] lookupHostByName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   542
      (java.net.InetAddress::java.lang.Object[] lookupHostByAddr (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   543
      (java.io.ObjectStreamClass::void doMismatchedRead (java.io.ObjectInputStream java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   544
      (java.io.ObjectStreamClass::long getClassDefinedUID (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   545
      (java.io.ObjectStreamClass::boolean findObjectMethod0 (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   546
      (java.lang.reflect.Method::java.lang.String getDescriptor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   547
      (java.lang.reflect.Array::void setShort (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   548
      (java.lang.reflect.Array::char getChar (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   549
      (java.lang.reflect.Array::void setChar (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   550
      (java.lang.reflect.Array::void setDouble (java.lang.Object int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   551
      (java.lang.reflect.Array::java.lang.Object get (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   552
      (java.lang.reflect.Array::void set (java.lang.Object int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   553
      (java.lang.reflect.Array::int getInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   554
      (java.lang.reflect.Array::void setInt (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   555
      (java.lang.reflect.Array::java.lang.Object multiNewArray (java.lang.Class int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   556
      (java.lang.reflect.Array::boolean getBoolean (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   557
      (java.lang.reflect.Array::byte getByte (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   558
      (java.lang.reflect.Array::float getFloat (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   559
      (java.lang.reflect.Array::void setBoolean (java.lang.Object int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   560
      (java.lang.reflect.Array::long getLong (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   561
      (java.lang.reflect.Array::void setByte (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   562
      (java.lang.reflect.Array::void setLong (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   563
      (java.lang.reflect.Array::void setFloat (java.lang.Object int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   564
      (java.lang.reflect.Array::java.lang.Object newArray (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   565
      (java.lang.reflect.Array::int getLength (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   566
      (java.lang.reflect.Array::unsigned short getShort (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   567
      (java.lang.reflect.Array::double getDouble (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   568
      (java.lang.reflect.Field::void setShort (java.lang.Object unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   569
      (java.lang.reflect.Field::char getChar (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   570
      (java.lang.reflect.Field::void setChar (java.lang.Object char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   571
      (java.lang.reflect.Field::void setDouble (java.lang.Object double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   572
      (java.lang.reflect.Field::java.lang.Object get (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   573
      (java.lang.reflect.Field::void set (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   574
      (java.lang.reflect.Field::int getInt (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   575
      (java.lang.reflect.Field::void setInt (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   576
      (java.lang.reflect.Field::boolean getBoolean (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   577
      (java.lang.reflect.Field::byte getByte (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   578
      (java.lang.reflect.Field::float getFloat (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   579
      (java.lang.reflect.Field::long getLong (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   580
      (java.lang.reflect.Field::void setBoolean (java.lang.Object boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   581
      (java.lang.reflect.Field::void setByte (java.lang.Object byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   582
      (java.lang.reflect.Field::void setLong (java.lang.Object long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   583
      (java.lang.reflect.Field::void setFloat (java.lang.Object float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   584
      (java.lang.reflect.Field::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   585
      (java.lang.reflect.Field::unsigned short getShort (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   586
      (java.lang.reflect.Field::double getDouble (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   587
      (java.lang.reflect.Constructor::java.lang.Object newInstance (java.lang.Object[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   588
      (java.lang.reflect.Constructor::int getModifiers ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   589
      (java.util.zip.Inflater::void setDictionary0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   590
      (java.util.zip.Inflater::int getTotalIn0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   591
      (java.util.zip.Inflater::void reset0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   592
      (java.util.zip.Inflater::void end0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   593
      (java.util.zip.Inflater::int inflate0 (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   594
      (java.util.zip.Inflater::int getTotalOut0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   595
      (java.util.zip.Inflater::int getAdler0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   596
      (java.util.zip.CRC32::void update1 (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   597
      (java.util.zip.CRC32::void update (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   599
      (com.ms.security.PolicyEngine::boolean isSystemClass (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   600
      (com.ms.security.PolicyEngine::void denyPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   601
      (com.ms.security.PolicyEngine::void revertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   602
      (com.ms.security.PolicyEngine::void initPolicyEngine ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   603
      (com.ms.security.PolicyEngine::java.lang.Class _getClassOfCaller (java.lang.Class[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   604
      (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
   605
      (com.ms.security.PolicyEngine::com.ms.security.PermissionDataSet getPermissionsOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   606
      (com.ms.security.PolicyEngine::void assertPermission (com.ms.security.PermissionID))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   607
      (com.ms.security.PolicyEngine::void deepCheck (com.ms.security.PermissionID java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   608
      (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
   609
      (com.ms.security.PolicyEngine::java.security.Principal getPrincipalOfClass (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   610
      (com.ms.security.permissions.ThreadPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   611
      (com.ms.security.permissions.ThreadPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   612
      (com.ms.security.permissions.RegistryPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   613
      (com.ms.security.permissions.RegistryPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   614
      (com.ms.security.management.ZonePermissions::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   615
      (com.ms.security.management.ZonePermissions::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   616
      (com.ms.security.permissions.UIPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   617
      (com.ms.security.permissions.UIPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   618
      (com.ms.security.permissions.NetIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   619
      (com.ms.security.permissions.NetIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   620
      (com.ms.security.permissions.ReflectionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   621
      (com.ms.security.permissions.ReflectionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   622
      (com.ms.vm.WeakReference::void storeRef (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   623
      (com.ms.vm.WeakReference::int allocRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   624
      (com.ms.vm.WeakReference::void freeRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   625
      (com.ms.vm.WeakReference::java.lang.Object fetchRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   626
      (com.ms.dll.DllLib::void CoTaskMemFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   627
      (com.ms.dll.DllLib::void CopyWithDstOffset (int float[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   628
      (com.ms.dll.DllLib::void CopyWithDstOffset (int double[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   629
      (com.ms.dll.DllLib::int numParamBytes0 (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   630
      (com.ms.dll.DllLib::void CopyWithDstOffset (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   631
      (com.ms.dll.DllLib::void write2 (java.lang.Object int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   632
      (com.ms.dll.DllLib::void write2 (int int unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   633
      (com.ms.dll.DllLib::void write2 (java.lang.Object int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   634
      (com.ms.dll.DllLib::void write2 (int int char))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   635
      (com.ms.dll.DllLib::int GlobalAlloc (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   636
      (com.ms.dll.DllLib::void resize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   637
      (com.ms.dll.DllLib::long read8 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   638
      (com.ms.dll.DllLib::long read8 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   639
      (com.ms.dll.DllLib::int lstrcpy (java.lang.StringBuffer int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   640
      (com.ms.dll.DllLib::int lstrlenA (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   641
      (com.ms.dll.DllLib::int read4 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   642
      (com.ms.dll.DllLib::int CoTaskMemAlloc (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   643
      (com.ms.dll.DllLib::void write8 (java.lang.Object int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   644
      (com.ms.dll.DllLib::int sizeOf0 (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   645
      (com.ms.dll.DllLib::int getSystemDefaultCharSize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   646
      (com.ms.dll.DllLib::void write8 (int int long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   647
      (com.ms.dll.DllLib::int read4 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   648
      (com.ms.dll.DllLib::byte read1 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   649
      (com.ms.dll.DllLib::byte read1 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   650
      (com.ms.dll.DllLib::int lstrlen (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   651
      (com.ms.dll.DllLib::void CopyMemoryAnsi (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   652
      (com.ms.dll.DllLib::void CopyMemoryAnsi (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   653
      (com.ms.dll.DllLib::boolean isStruct (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   654
      (com.ms.dll.DllLib::boolean GlobalFree (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   655
      (com.ms.dll.DllLib::void internalAttemptCopyPtrToStruct (int java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   656
      (com.ms.dll.DllLib::int getLastError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   657
      (com.ms.dll.DllLib::void write4 (java.lang.Object int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   658
      (com.ms.dll.DllLib::void write4 (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   659
      (com.ms.dll.DllLib::unsigned short read2 (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   660
      (com.ms.dll.DllLib::unsigned short read2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   661
      (com.ms.dll.DllLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   662
      (com.ms.dll.DllLib::void write1 (java.lang.Object int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   663
      (com.ms.dll.DllLib::void write1 (int int byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   664
      (com.ms.dll.DllLib::boolean isStructCls (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   665
      (com.ms.dll.DllLib::void prelink (java.lang.reflect.Method))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   666
      (com.ms.dll.DllLib::void CopyMemoryUni (int java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   667
      (com.ms.dll.DllLib::void CopyMemoryUni (java.lang.StringBuffer int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   668
      (com.ms.dll.DllLib::void internalAttemptCopyStructToPtr (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   669
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   670
      (com.ms.dll.DllLib::void CopyWithSrcOffset (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   671
      (com.ms.dll.DllLib::void CopyWithSrcOffset (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   672
      (com.ms.dll.DllLib::void CopyWithSrcOffset (unsigned short[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   673
      (com.ms.dll.DllLib::void CopyWithSrcOffset (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   674
      (com.ms.dll.DllLib::void CopyWithSrcOffset (long[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   675
      (com.ms.dll.DllLib::void CopyWithSrcOffset (float[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   676
      (com.ms.dll.DllLib::void CopyWithSrcOffset (double[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   677
      (com.ms.dll.DllLib::void CopyWithSrcOffset (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   678
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   679
      (com.ms.dll.DllLib::int lstrlenW (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   680
      (com.ms.dll.DllLib::void CopyWithDstOffset (int byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   681
      (com.ms.dll.DllLib::void CopyWithDstOffset (int char[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   682
      (com.ms.dll.DllLib::void CopyWithDstOffset (int unsigned short[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   683
      (com.ms.dll.DllLib::void CopyWithDstOffset (int int[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   684
      (com.ms.dll.DllLib::void CopyWithDstOffset (int long[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   685
      (com.ms.dll.DllLib::int internalGetStructAddr (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   686
      (com.ms.dll.DllLib::int offsetOf (java.lang.reflect.Field))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   687
      (com.ms.dll.DllLib::int lstrcpy (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   688
      (com.ms.dll.DllLib::int sizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   689
      (com.ms.lang.RegKey::com.ms.lang.RegKeyEnumValue pRegEnumValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   690
      (com.ms.lang.RegKey::java.lang.String pRegQueryStringValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   691
      (com.ms.lang.RegKey::byte[] pRegQueryBinaryValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   692
      (com.ms.lang.RegKey::int pRegQueryIntValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   693
      (com.ms.lang.RegKey::void pRegSetStringValue (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   694
      (com.ms.lang.RegKey::void pRegSetIntValue (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   695
      (com.ms.lang.RegKey::void pRegSetBinaryValue (java.lang.String byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   696
      (com.ms.lang.RegKey::void pRegDeleteValue (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   697
      (com.ms.lang.RegKey::void pRegFlushKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   698
      (com.ms.lang.RegKey::void pRegDeleteKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   699
      (com.ms.lang.RegKey::void pRegOpenBaseKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   700
      (com.ms.lang.RegKey::void pRegOpenKey (com.ms.lang.RegKey java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   701
      (com.ms.lang.RegKey::int pRegQueryInfoKey (com.ms.lang.RegQueryInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   702
      (com.ms.lang.RegKey::void pRegUnLoadKey (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   703
      (com.ms.lang.RegKey::void pRegCreateKey (com.ms.lang.RegKey java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   704
      (com.ms.lang.RegKey::void pRegRestoreKey (java.lang.String boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   705
      (com.ms.lang.RegKey::void pRegLoadKey (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   706
      (com.ms.lang.RegKey::void pRegCloseKey ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   707
      (com.ms.lang.RegKey::java.lang.String pRegEnumKey (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   708
      (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
   709
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayouts (int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   710
      (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
   711
      (com.ms.awt.peer.NativeServices::int getColourDataDepth ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   712
      (com.ms.awt.peer.NativeServices::java.lang.String pGetFontEnumeratedFamily (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   713
      (com.ms.awt.peer.NativeServices::int pNewFontEnumeration ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   714
      (com.ms.awt.peer.NativeServices::int getScreenClipRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   715
      (com.ms.awt.peer.NativeServices::int pSetKeyboardLayout (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   716
      (com.ms.awt.peer.NativeServices::void ClipboardInit (com.ms.awt.peer.IToolkit))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   717
      (com.ms.awt.peer.NativeServices::void getDeviceCaps (int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   718
      (com.ms.awt.peer.NativeServices::void getAfcMetrics (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   719
      (com.ms.awt.peer.NativeServices::void setUserLocale (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   720
      (com.ms.awt.peer.NativeServices::void getDCDI (com.ms.awt.peer.DirectColourDataInfo))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   721
      (com.ms.awt.peer.NativeServices::int pGetNumKeyboardLayouts ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   722
      (com.ms.awt.peer.NativeServices::void getIndexedColours (byte[] byte[] byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   723
      (com.ms.awt.peer.NativeServices::int getNativeFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   724
      (com.ms.awt.peer.NativeServices::int pGetKeyboardLayout ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   725
      (com.ms.awt.peer.NativeServices::int getSystemLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   726
      (com.ms.awt.peer.NativeServices::void caretSetPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   727
      (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
   728
      (com.ms.awt.peer.NativeServices::java.lang.String ClipboardGetText ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   729
      (com.ms.awt.peer.NativeServices::int systemMetric (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   730
      (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
   731
      (com.ms.awt.peer.NativeServices::void caretHide (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   732
      (com.ms.awt.peer.NativeServices::int chooseColor (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   733
      (com.ms.awt.peer.NativeServices::java.lang.String pGetKeyboardLayoutName (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   734
      (com.ms.awt.peer.NativeServices::int matchFontAndLanguage (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   735
      (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
   736
      (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
   737
      (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
   738
      (com.ms.awt.peer.NativeServices::void caretDispose (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   739
      (com.ms.awt.peer.NativeServices::void caretShow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   740
      (com.ms.awt.peer.NativeServices::void deleteObject (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   741
      (com.ms.awt.peer.NativeServices::void setDebugOutput (com.ms.awt.peer.COMPrintCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   742
      (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
   743
      (com.ms.awt.peer.NativeServices::int getSystemColourValue (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   744
      (com.ms.awt.peer.NativeServices::void caretCreate (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   745
      (com.ms.awt.peer.NativeServices::void ClipboardSetText (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   746
      (com.ms.awt.peer.NativeServices::void println (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   747
      (com.ms.security.SecurityClassLoader::boolean getSecureState ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   748
      (com.ms.security.SecurityClassLoader::void setSecureState (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   749
      (com.ms.security.SecurityClassLoader::java.lang.Class internalDefineClass (java.lang.String byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   750
      (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
   751
      (com.ms.security.SecurityClassLoader::java.util.Hashtable getHashTable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   752
      (com.ms.security.auditing.SecurityAuditor::boolean isThreadAuditingEnabled ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   753
      (com.ms.security.auditing.SecurityAuditor::void disableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   754
      (com.ms.security.auditing.SecurityAuditor::void enableThreadAuditing ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   755
      (com.ms.security.auditing.SecurityAuditor::void initSecurityAuditor ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   756
      (com.ms.security.PermissionDataSet::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   757
      (com.ms.security.PermissionDataSet::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   758
      (com.ms.lang.SystemX::int pAnsiToUnicode (byte[] char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   759
      (com.ms.lang.SystemX::int pQueryUnicodeToAnsi (char[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   760
      (com.ms.lang.SystemX::void gc ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   761
      (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
   762
      (com.ms.lang.SystemX::int pUnicodeToAnsi (char[] byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   763
      (com.ms.lang.SystemX::boolean isLocalCharDBCSLeadByte (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   764
      (com.ms.lang.SystemX::int pQueryAnsiToUnicode (byte[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   765
      (com.ms.lang.SystemX::boolean isBaseDBCS ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   766
      (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
   767
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetSigner (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   768
      (com.ms.packagemanager.JavaPackage::byte[] nativeGetCapabilities (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   769
      (com.ms.com._Guid::void IIDFromString (java.lang.String com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   770
      (com.ms.com._Guid::java.lang.String StringFromIID (com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   771
      (com.ms.security.auditing.PrintStreamAuditor::int GetModuleHandle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   772
      (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
   773
      (com.ms.security.permissions.CustomPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   774
      (com.ms.security.permissions.CustomPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   775
      (com.ms.security.permissions.X509Signer::boolean pLoad (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   776
      (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
   777
      (com.ms.packagemanager.PackageManager::java.lang.Object nativeGetPackage (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   778
      (com.ms.packagemanager.PackageManager::java.lang.String[] nativeGetBeansList ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   779
      (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
   780
      (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
   781
      (com.ms.security.permissions.UserFileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   782
      (com.ms.security.permissions.UserFileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   783
      (com.ms.security.permissions.PropertyPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   784
      (com.ms.security.permissions.PropertyPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   785
      (com.ms.security.permissions.ClientStoragePermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   786
      (com.ms.security.permissions.ClientStoragePermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   787
      (com.ms.security.permissions.ExecutionPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   788
      (com.ms.security.permissions.ExecutionPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   789
      (com.ms.util.EventLog::boolean DeregisterEventSource (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   790
      (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
   791
      (com.ms.util.EventLog::int RegisterEventSource (java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   792
      (com.ms.applet.BrowserAppletFrame::void signalViewChange (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   793
      (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
   794
      (com.ms.applet.BrowserAppletFrame::void showSystemStatus (int int boolean java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   795
      (com.ms.applet.BrowserAppletFrame::com.ms.security.management.SecurityPolicy getSecurityPolicy0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   796
      (com.ms.applet.BrowserAppletFrame::void setDownloadState (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   797
      (com.ms.applet.BrowserAppletFrame::int GetSystemDefaultLCID ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   798
      (com.ms.applet.BrowserAppletFrame::void requestResize (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   799
      (com.ms.applet.BrowserAppletFrame::void signalObjectLoadDone (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   800
      (com.ms.applet.BrowserAppletFrame::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   801
      (com.ms.applet.BrowserAppletFrame::void showStatus0 (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   802
      (com.ms.applet.BrowserAppletFrame::boolean checkGlobalOfflineMode0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   803
      (com.ms.applet.BrowserAppletFrame::void showDocument0 (int java.lang.String java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   804
      (com.ms.security.permissions.SystemStreamsPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   805
      (com.ms.security.permissions.SystemStreamsPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   806
      (com.ms.security.permissions.FileIOPermission::byte[] pEncodeAsn ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   807
      (com.ms.security.permissions.FileIOPermission::boolean pDecodeAsn (byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   808
      (com.ms.com.ComLib::int newGCHandle (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   809
      (com.ms.com.ComLib::java.lang.Object derefGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   810
      (com.ms.com.ComLib::void dprinthelper (char[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   811
      (com.ms.com.ComLib::void release (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   812
      (com.ms.com.ComLib::int jcdwClassSizeOf (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   813
      (com.ms.com.ComLib::int jcdwOffsetOf (java.lang.Object java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   814
      (com.ms.com.ComLib::int jcdwClassOffsetOf (java.lang.Class java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   815
      (com.ms.com.ComLib::boolean isJavaOwned (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   816
      (com.ms.com.ComLib::void brk (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   817
      (com.ms.com.ComLib::void setDataWrapperSize (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   818
      (com.ms.com.ComLib::void brk (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   819
      (com.ms.com.ComLib::void setJCDWHomeThread (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   820
      (com.ms.com.ComLib::void propagateOwnership (java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   821
      (com.ms.com.ComLib::void threadStartMTA (java.lang.Thread))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   822
      (com.ms.com.ComLib::void IENVNextMarshalerJ2C (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   823
      (com.ms.com.ComLib::boolean supportsInterface (java.lang.Object com.ms.com._Guid))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   824
      (com.ms.com.ComLib::java.lang.Object ptrToStruct (java.lang.Class int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   825
      (com.ms.com.ComLib::int jcdwSizeOf (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   826
      (com.ms.com.ComLib::void declareMessagePumpThread ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   827
      (com.ms.com.ComLib::void IENVNextMarshalerC2J (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   828
      (com.ms.com.ComLib::void freeGCHandle (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   829
      (com.ms.com.ComLib::boolean isEqualUnknown (java.lang.Object java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   830
      (com.ms.com.Dispatch::boolean NIsArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   831
      (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
   832
      (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
   833
      (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
   834
      (com.ms.com.Variant::int toInt ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   835
      (com.ms.com.Variant::double toDate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   836
      (com.ms.com.Variant::boolean toBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   837
      (com.ms.com.Variant::double toDouble ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   838
      (com.ms.com.Variant::long toCurrency ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   839
      (com.ms.com.Variant::void putVariantArray (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   840
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   841
      (com.ms.com.Variant::void putByteArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   842
      (com.ms.com.Variant::void putShortRef (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   843
      (com.ms.com.Variant::void putIntRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   844
      (com.ms.com.Variant::void putDoubleRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   845
      (com.ms.com.Variant::void putDateRef (double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   846
      (com.ms.com.Variant::void putStringRef (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   847
      (com.ms.com.Variant::unsigned short getShortRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   848
      (com.ms.com.Variant::int getIntRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   849
      (com.ms.com.Variant::double getDoubleRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   850
      (com.ms.com.Variant::double getDateRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   851
      (com.ms.com.Variant::java.lang.String getStringRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   852
      (com.ms.com.Variant::java.lang.String internalToString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   853
      (com.ms.com.Variant::void initSafeArrayByRef (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   854
      (com.ms.com.Variant::java.lang.Object toCharArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   855
      (com.ms.com.Variant::java.lang.Object toDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   856
      (com.ms.com.Variant::byte toByte ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   857
      (com.ms.com.Variant::java.lang.Object getDispatch ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   858
      (com.ms.com.Variant::void putDispatch (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   859
      (com.ms.com.Variant::boolean getBoolean ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   860
      (com.ms.com.Variant::int toError ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   861
      (com.ms.com.Variant::java.lang.Object toObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   862
      (com.ms.com.Variant::void initSafeArrayByVal (com.ms.com.SafeArray int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   863
      (com.ms.com.Variant::java.lang.Object getObject ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   864
      (com.ms.com.Variant::void putObject (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   865
      (com.ms.com.Variant::com.ms.com.SafeArray toSafeArrayHelper (java.lang.Class))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   866
      (com.ms.com.Variant::void putFloatRef (float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   867
      (com.ms.com.Variant::void putCurrencyRef (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   868
      (com.ms.com.Variant::void putErrorRef (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   869
      (com.ms.com.Variant::void putBooleanRef (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   870
      (com.ms.com.Variant::void putObjectRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   871
      (com.ms.com.Variant::void putByteRef (byte))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   872
      (com.ms.com.Variant::java.lang.String getString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   873
      (com.ms.com.Variant::void putString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   874
      (com.ms.com.Variant::float getFloatRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   875
      (com.ms.com.Variant::long getCurrencyRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   876
      (com.ms.com.Variant::int getErrorRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   877
      (com.ms.com.Variant::boolean getBooleanRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   878
      (com.ms.com.Variant::java.lang.Object getObjectRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   879
      (com.ms.com.Variant::byte getByteRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   880
      (com.ms.com.Variant::float toFloat ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   881
      (com.ms.com.Variant::void putCharArray (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   882
      (com.ms.com.Variant::void putDispatchRef (java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   883
      (com.ms.com.Variant::java.lang.Object getDispatchRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   884
      (com.ms.com.Variant::void putVariantArrayRef (com.ms.com.Variant[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   885
      (com.ms.com.Variant::com.ms.com.Variant[] getVariantArrayRef ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   886
      (com.ms.com.Variant::void changeType (unsigned short))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   887
      (com.ms.com.Variant::void ncloneIndirect (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   888
      (com.ms.com.Variant::void nFinalize (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   889
      (com.ms.com.Variant::void nclone (com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   890
      (com.ms.com.Variant::unsigned short toShort ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   891
      (com.ms.com.Variant::void putSafeArrayRefHelper (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   892
      (com.ms.com.Variant::com.ms.com.Variant[] toVariantArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   893
      (com.ms.com.Variant::java.lang.Object toByteArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   894
      (com.ms.com.Variant::void TrueVariantClear ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   895
      (com.ms.awt.WToolkit::boolean MessageBeep (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   896
      (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
   897
      (com.ms.applet.AppletPanel::void securedCall0 (int java.lang.Object))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   898
      (com.ms.applet.AppletPanel::com.ms.security.PermissionSet getDefaultPermissionsFromLoader (com.ms.vm.loader.URLClassLoader))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   899
      (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
   900
      (com.ms.awt.WGuiCallback::boolean SetEvent (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   901
      (com.ms.awt.WGuiCallback::int CreateSemaphore (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   902
      (com.ms.awt.WGuiCallback::int ReleaseSemaphore (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   903
      (com.ms.awt.WGuiCallback::void userYield (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   904
      (com.ms.awt.WGuiCallback::int MsgWaitForMultipleObjects (int int[] boolean int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   905
      (com.ms.awt.WGuiCallback::int CreateEvent (int boolean boolean int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   906
      (com.ms.activeX.ActiveXToolkit::int GetSysColor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   907
      (com.ms.awt.peer.NativeGraphics::void setPageDimension (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   908
      (com.ms.awt.peer.NativeGraphics::void setBkColour (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   909
      (com.ms.awt.peer.NativeGraphics::void getClipBounds (com.ms.awt.peer.NativeRect int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   910
      (com.ms.awt.peer.NativeGraphics::void pGetCharOutline (int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   911
      (com.ms.awt.peer.NativeGraphics::void drawLine (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   912
      (com.ms.awt.peer.NativeGraphics::void setXORMode (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   913
      (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
   914
      (com.ms.awt.peer.NativeGraphics::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   915
      (com.ms.awt.peer.NativeGraphics::void drawArc (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   916
      (com.ms.awt.peer.NativeGraphics::void getInitialPageDimension (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   917
      (com.ms.awt.peer.NativeGraphics::void setVisRgn (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   918
      (com.ms.awt.peer.NativeGraphics::void pSetForeground (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   919
      (com.ms.awt.peer.NativeGraphics::int pGetDC ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   920
      (com.ms.awt.peer.NativeGraphics::void drawPixels (int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   921
      (com.ms.awt.peer.NativeGraphics::void drawPolygon (int[] int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   922
      (com.ms.awt.peer.NativeGraphics::void createFromImage (com.ms.awt.peer.INativeImage))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   923
      (com.ms.awt.peer.NativeGraphics::void endPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   924
      (com.ms.awt.peer.NativeGraphics::int pGetCharOutlineSize (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   925
      (com.ms.awt.peer.NativeGraphics::void pDrawBezier (int int int[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   926
      (com.ms.awt.peer.NativeGraphics::int drawBytes (byte[] int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   927
      (com.ms.awt.peer.NativeGraphics::void changeClip (int int int int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   928
      (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
   929
      (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
   930
      (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
   931
      (com.ms.awt.peer.NativeGraphics::void endPrintJob ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   932
      (com.ms.awt.peer.NativeGraphics::void pSetOrigin (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   933
      (com.ms.awt.peer.NativeGraphics::void createFromHDC (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   934
      (com.ms.awt.peer.NativeGraphics::void drawOval (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   935
      (com.ms.awt.peer.NativeGraphics::int pSetFont (java.lang.String int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   936
      (com.ms.awt.peer.NativeGraphics::void setPaintMode (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   937
      (com.ms.awt.peer.NativeGraphics::void startPage ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   938
      (com.ms.awt.peer.NativeGraphics::void clearClip ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   939
      (com.ms.awt.peer.NativeGraphics::void createFromCopy (com.ms.awt.peer.INativeGraphics))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   940
      (com.ms.awt.peer.NativeGraphics::void scanLines (int int[] int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   941
      (com.ms.awt.peer.NativeGraphics::void drawRoundRect (int int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   942
      (com.ms.awt.peer.NativeGraphics::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   943
      (com.ms.awt.peer.NativeGraphics::void clearRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   944
      (com.ms.awt.peer.NativeGraphics::void copyArea (int int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   945
      (com.ms.awt.peer.NativeGraphics::void createFromWindow (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   946
      (com.ms.awt.peer.NativeGraphics::void drawPolyline (int[] int[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   947
      (com.ms.awt.peer.NativeGraphics::void drawRect (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   948
      (com.ms.awt.peer.CToolkit::void callbackEventLoop (com.ms.awt.peer.IToolkitCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   949
      (com.ms.awt.peer.CToolkit::int getToolkitHwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   950
      (com.ms.awt.peer.CToolkit::int createCompHwnd (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   951
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionFont (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   952
      (com.ms.awt.peer.CNativeSystemIME::void setCompositionPos (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   953
      (com.ms.awt.peer.CNativeSystemIME::void setOpenStatus (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   954
      (com.ms.awt.peer.CNativeSystemIME::int getOpenStatus (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   955
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   956
      (com.ms.awt.peer.CNativeSystemIME::java.lang.String getCompositionResultString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   957
      (com.ms.net.wininet.WininetStreamHandlerFactory::int initNative (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   958
      (com.ms.com.SafeArray::void rawGetVariantAs (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   959
      (com.ms.com.SafeArray::void NSafeArrayInit (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   960
      (com.ms.com.SafeArray::float rawGetDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   961
      (com.ms.com.SafeArray::void NRawBoolCopyToJavaArray (int int boolean[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   962
      (com.ms.com.SafeArray::void validateArray (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   963
      (com.ms.com.SafeArray::void NSafeArrayCreateFromString (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   964
      (com.ms.com.SafeArray::void rawSetString (int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   965
      (com.ms.com.SafeArray::int getInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   966
      (com.ms.com.SafeArray::void setInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   967
      (com.ms.com.SafeArray::boolean getBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   968
      (com.ms.com.SafeArray::void setBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   969
      (com.ms.com.SafeArray::int computeOffset (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   970
      (com.ms.com.SafeArray::void NSafeArrayNullInit ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   971
      (com.ms.com.SafeArray::void rawSetVariant (int com.ms.com.Variant))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   972
      (com.ms.com.SafeArray::float rawGetFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   973
      (com.ms.com.SafeArray::float getFloat (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   974
      (com.ms.com.SafeArray::void setFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   975
      (com.ms.com.SafeArray::int computeOffset2 (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   976
      (com.ms.com.SafeArray::void rawSetDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   977
      (com.ms.com.SafeArray::java.lang.String asString ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   978
      (com.ms.com.SafeArray::void NRawCopyToJavaArray (int int java.lang.Object int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   979
      (com.ms.com.SafeArray::void NSafeArrayCreate (int int int[] int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   980
      (com.ms.com.SafeArray::void NRawBoolCopyFromJavaArray (boolean[] int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   981
      (com.ms.com.SafeArray::void NSafeArrayDestroy (boolean boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   982
      (com.ms.com.SafeArray::int NSafeArrayCopy ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   983
      (com.ms.com.SafeArray::int rawGetInt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   984
      (com.ms.com.SafeArray::boolean rawGetBoolean (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   985
      (com.ms.com.SafeArray::void rawSetFloat (int float))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   986
      (com.ms.com.SafeArray::java.lang.String rawGetString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   987
      (com.ms.com.SafeArray::int NTotalNumElems ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   988
      (com.ms.com.SafeArray::double getDouble (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   989
      (com.ms.com.SafeArray::void setDouble (int double))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   990
      (com.ms.com.SafeArray::void Nreinit (com.ms.com.SafeArray))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   991
      (com.ms.com.SafeArray::int getPhysicalSafeArray ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   992
      (com.ms.com.SafeArray::int NgetdwordAt (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   993
      (com.ms.com.SafeArray::void NRawCopyFromJavaArray (java.lang.Object int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   994
      (com.ms.com.SafeArray::void rawSetBoolean (int boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   995
      (com.ms.com.SafeArray::void rawSetInt (int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   996
      (com.ms.awt.peer.CNativeComponent::void invalidate (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   997
      (com.ms.awt.peer.CNativeComponent::void hideModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   998
      (com.ms.awt.peer.CNativeComponent::void hide ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
   999
      (com.ms.awt.peer.CNativeComponent::void setOnTop (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1000
      (com.ms.awt.peer.CNativeComponent::void registerDragDrop ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1001
      (com.ms.awt.peer.CNativeComponent::void endValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1002
      (com.ms.awt.peer.CNativeComponent::void enable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1003
      (com.ms.awt.peer.CNativeComponent::void disable ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1004
      (com.ms.awt.peer.CNativeComponent::void setTitle (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1005
      (com.ms.awt.peer.CNativeComponent::void getBounds (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1006
      (com.ms.awt.peer.CNativeComponent::int gethwnd ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1007
      (com.ms.awt.peer.CNativeComponent::void showModal ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1008
      (com.ms.awt.peer.CNativeComponent::void setCursor (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1009
      (com.ms.awt.peer.CNativeComponent::void reshape (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1010
      (com.ms.awt.peer.CNativeComponent::void requestFocus ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1011
      (com.ms.awt.peer.CNativeComponent::void callDefWindowProc (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1012
      (com.ms.awt.peer.CNativeComponent::void registerCustomDropTarget (com.ms.com.IUnknown))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1013
      (com.ms.awt.peer.CNativeComponent::void setNoActivate (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1014
      (com.ms.awt.peer.CNativeComponent::void getPlaceOnScreen (com.ms.awt.peer.NativeRect))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1015
      (com.ms.awt.peer.CNativeComponent::void beginValidate ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1016
      (com.ms.awt.peer.CNativeComponent::void clippedReshape (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1017
      (com.ms.awt.peer.CNativeComponent::void setResizable (boolean))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1018
      (com.ms.awt.peer.CNativeComponent::void setIcon (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1019
      (com.ms.awt.peer.CNativeComponent::void toBack ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1020
      (com.ms.awt.peer.CNativeComponent::void setFrameHost (com.ms.awt.peer.IBrowserAppletFrameCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1021
      (com.ms.awt.peer.CNativeComponent::void toFront ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1022
      (com.ms.awt.peer.CNativeComponent::void show ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1023
      (com.ms.awt.peer.CNativeComponent::void updateInsets (com.ms.awt.peer.NativeInsets))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1024
      (com.ms.awt.peer.CNativeComponent::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1025
      (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
  1026
      (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
  1027
      (com.ms.awt.peer.CNativeComponent::void beginDrag (com.ms.awt.peer.INativeDragCallback))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1028
      (com.ms.fx.RegionConverter::int computeNativeRegion (int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1029
      (com.ms.fx.RegionConverter::int[] computeJavaRegion (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1030
      (com.ms.net.wininet.URLUtils::java.lang.String canonicalizeURL (java.lang.String int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1031
      (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
  1032
      (com.ms.awt.peer.NativeFontMetrics::int bytesWidth (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1033
      (com.ms.awt.peer.NativeFontMetrics::int stringWidth (java.lang.String int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1034
      (com.ms.awt.peer.NativeFontMetrics::int charsWidth (char[] int int int int[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1035
      (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
  1036
      (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
  1037
      (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
  1038
      (com.ms.security.management.SecurityZone::byte[] pLoadCustomPermissions (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1039
      (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
  1040
      (com.ms.awt.peer.NativeImage::void create (int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1041
      (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
  1042
      (com.ms.awt.peer.NativeImage::int getCoClass ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1043
      (com.ms.awt.peer.NativeImage::int getIcon (int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1044
      (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
  1045
      (com.ms.awt.peer.NativeImage::void sendPixels (com.ms.awt.peer.SPData))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1046
      (com.ms.awt.peer.NativeImage::void fillPixels (com.ms.awt.peer.SPData byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1047
      (com.ms.awt.peer.NativeImage::void dispose ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1048
      (com.ms.awt.peer.NativeImage::void init (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1049
      (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
  1050
      (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
  1051
      (com.ms.awt.peer.NativeImage::int finish (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1052
      (com.ms.awt.peer.NativeImage::void imageDraw (int int int int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1053
      (com.ms.awt.peer.NativeResource::java.lang.String loadString (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1054
      (com.ms.awt.peer.NativeResource::int openDialogFromID (int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1055
      (com.ms.awt.peer.NativeResource::boolean attach (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1056
      (com.ms.awt.peer.NativeResource::void loadBytes (int int java.lang.String byte[] int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1057
      (com.ms.awt.peer.NativeResource::int getSize (int int java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1058
      (com.ms.awt.peer.NativeResource::void detach ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1059
      (com.ms.awt.peer.NativeResource::int openDialogFromName (java.lang.String))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1060
      (com.ms.net.wininet.WininetURLConnection::com.ms.applet.BrowserAppletFrame findOfflineContext ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1061
      (com.ms.com.DispatchProxy::void finalize ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1062
      (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
  1063
      (com.ms.net.wininet.WininetInputStream::void close ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1064
      (com.ms.net.wininet.WininetInputStream::int read (byte[] int int))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1065
      (com.ms.net.wininet.WininetInputStream::int available ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1066
      (com.ms.net.wininet.WininetInputStream::long skip (long))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1067
      (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
  1068
      (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
  1069
      (com.ms.net.wininet.http.HttpInputStream::byte[] getResponseHeaders ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1070
      (com.ms.net.wininet.http.HttpInputStream::void close0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1071
      (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
  1072
      (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
  1073
      (com.ms.vm.loader.CabCracker::void getBytes0 (int int byte[]))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1074
      (com.ms.vm.loader.CabCracker::void cleanup ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1075
      (com.ms.vm.loader.CabCracker::int GetTempPath (int java.lang.StringBuffer))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1076
      (com.ms.vm.loader.CabCracker::void load0 ())
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1077
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
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1082
performance1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1083
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1084
     JAVA::BenchMark new loopmark        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1085
     JAVA::BenchMark new logicmark  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1086
     JAVA::BenchMark new sievemark       
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1087
     JAVA::BenchMark new methodmark      
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1088
     JAVA::BenchMark new stringmark  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1089
     JAVA::BenchMark new newstringmark                
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1090
     JAVA::BenchMark new neweststringmark               
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1091
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
"
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1095
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1096
 linux:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1097
   P6/233 No JIT                 84         87        90          40          22                                       17              10
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1098
                      103       133        142       137          28          73       109    167     18    140
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1099
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1100
   P6/233 JIT                   479       2459       393         649          28                                       21              12
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1101
   P6/233 JIT         473      1805       3046       439         986          28                                       21              12
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1102
                      533      1808       3382       613        1003          25       105    143      1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1103
                      668      3330       3644       740
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1104
                      793      4116       3731      1243        1365         120       103     79      2
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1105
                      914      4480       4061                  2290          68       106    158     19     34
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1106
                      941      4607       4149      1238        2434          75       101    152     18     32
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1107
                                                                             591              164
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1108
                     1087                           1836                     800       110                   35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1109
                     1102      4592       4270      1844        2381         841       109    169     21     35
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1110
                     1177      4608       4309      1810        2432         895       532    182     20     35
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1113
 w95
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1114
   P5/200 JIT          90        95         90        95         686          18        60     54      7
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1115
                      428      1657       2385       684         957          21        61     62      9
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1116
                      541      2886       2589       823         976          18        62     55      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1117
                      583      3062       2635       842         861         223        65     57      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1118
                      616      3075       2438      1081        1324         218        64     54      8
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1119
                      718      3138       2755      1085        1200         816        63     48      9      7
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1120
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1121
                    caffmark  loopmark  logicmark  sievemark  methodmark  stringmark  float  image  graphic dialog newstringmark  neweststringmark
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1122
"
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
performance2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1126
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1127
     symantec benchmarks
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1128
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
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1134
   ST/X+J Linux         
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1135
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1136
   No JIT          352767         354597         69585    43048  101638  28961 108839  48815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1138
   ST/X+J Linux                  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1139
   233Mhz P6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1140
   JIT             128724         116810         20259    39733   83160  27613  52093  33166  43996  545554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1141
		   124744         101428         17239    10052    8264  14004  38821  23252  33709  374660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1142
   +IINC           120324                                  7265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1143
   +IADD op2       100173          90737         18128     6996    7423  17093  48559  44209  57056  390374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1144
   +ISUB op2                       90460         17547             5921                       57056  390461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1145
   +ICMPEQ/NE       99785          90147                           5792                43482  56486  388255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1146
   +ICMP            87398          78214         15784     7574    5628  12812  38481  24654  32252  302797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1147
   +IFICMPLE        84198          74928         13814     5650          11674         23241         293118
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1148
   +IFICMPxx        76867          69738         12208                          37505  21973  32104  273569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1149
   +IFICMPEQ/NE                                                    5580  11202         21723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1150
   const IFICMPxx                                11856             5463  11032  37372                272726
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1151
   +lea for add/sub
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1152
   +BALOAD                                       11700     4600    5015   9431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1153
   +BASTORE                                                3279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1154
   +CALOAD/CASTORE                                                        8907
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1155
   regSave change   66119          60365          9997             4917  15386  37851  38202  50027  286497
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1156
		    64858          58360          9476             4889  15001  37211  36288  48313  278478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1157
		    63146          55949          9302                   14899
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1158
		    62970          56085          9352     3226    4837   8779  37573  22815  33899  241297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1159
   -O               43662          40292          7181     2530    4696   8170  34555  22116  32337  195539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1161
   +IALOAD          39162          36347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1162
   +IASTORE         32461          30663          4299             3667                19556  30563  166868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1163
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1164
   -IALOAD/IASTORE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1165
										34167  19347
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1166
										       19232  29726  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1167
										       18821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1168
   +AALOAD/BALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1169
		    41490          39527          6776     3315    4077   8443  33895  19152  28018  184693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1170
		    41291          37034          6593                          32682
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1171
   +ATHROW                                                                6449                       180079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1172
   +IASTORE         38848          35601          6219             3796   6122         17869  30085  175106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1173
   IINC delayed code
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1174
   +ANEWARRAY                                              3263
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1175
   +LADD/LSUB const 38719          35256                                  6062  27071                172859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1176
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1177
							   2837                 22835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1178
   +ISTORE into arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1179
									  3080
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1180
   quick L2I for ints                                                     2774  21184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1181
   +*ASTORE / *ALOAD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1182
    again                                                  1621    3654   1525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1183
   +CHECKCAST                                                      3574                       25810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1184
                                                                
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1185
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1186
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1187
   ST/X+J Win95         
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1188
   200Mhz P5
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1189
   JIT              78490          77060         15220     4840    6370   9180  73160  36080         351700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1190
				   76900         13560             5500   9010         35200         348600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1191
										66080         69920  370750
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1192
   +IADD non consts 76620          73210         13180     3790                 63550         58880  356900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1193
											      51740
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1194
		    77390          72450         12520     3900    6040   8950  62450  34330  57780  335810    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1195
		    77220          71950                           5270   8840                       338650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1196
		    72390          70690                                                      48010  327370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1197
		    74910          66740         11420                    8620  61730  33340  47350  313940
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1198
   +xALOAD/JMP_ZERO
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1199
		    71740                                  2800             
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1200
		    71460          65250         11540     2750                 62180  33840  50750  311660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1201
   +LCMP                                                                        59100
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1202
   better abs(I)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1203
   +xALOAD/IF_ICMPx 66130          61520         12080     3300    5280   8190  56510  33830  50310  297150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1204
   elim dummy static                                               5210                       48270
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1205
   methods                                                                                    44160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1206
		   119020         112440         19330     3070    4560   2640  56960  37730  52790  408540
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1207
------------------------------------------------------------------------------------------------------------
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1208
		BubbleSort    BidirBubbleSort  QuickSort  Sieve   Hanoi   Dhry   Fib   Array   Tree   Total
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1209
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1211
   Sun JDK         274625         244461         52676    50653   65183  26668  78133  28572  61608  882583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1212
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1213
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1214
   Microsoft J++     9684           8452          2874     1733    3535   3665   3836   4746  25717   64242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1215
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1217
   Symantec Cafe    14541          12198          3686     1922    4527   3325   3425  12969  26829   83422
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1218
   JIT 1.02
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1219
   (90Mhz P5)   
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1221
   Symantec Cafe     8292           6970          2714     1613    3345   3235   2013   4516  13180   45878
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1222
   JIT 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1223
   (90Mhz P5)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1224
"
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
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1228
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1229
   b := JAVA::BubbleSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1230
   b perform:#'setData(JJ)V' with:10000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1231
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1232
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1233
   ]
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
   |b|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1237
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1238
   b := JAVA::QSortAlgorithm new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1239
   b perform:#'setData(JJ)V' with:500000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1240
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1241
       b performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1242
   ]
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
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1247
   t := JAVA::Tree new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1248
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1249
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1250
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1251
   ]
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
   |t|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1255
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1256
   t := JAVA::Array new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1257
   t perform:#'setData(JJ)V' with:1000000 with:0 with:0 with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1258
   Time millisecondsToRun:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1259
       t performTest.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1260
   ]
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
!JavaVM class methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1266
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1267
boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1268
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1269
    Java initialize.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1270
    self initializeVM.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1271
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1272
    "Created: / 21-02-2012 / 18:09:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1273
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1274
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1275
compile:source selector:smalltalkSelector asJavaMethod:javaSelector fakedSource:fakedSource in:aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1276
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1278
    |cloneCode|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1280
    (aClass implements:javaSelector) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1281
        Class packageQuerySignal answer:'__temporary__'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1282
        do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1283
            aClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1284
                compile:source
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1285
                classified:'java support'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1286
                logged:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1287
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1289
        cloneCode := aClass compiledMethodAt:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1290
        cloneCode source:fakedSource.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1292
        Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1293
            aClass removeSelector:smalltalkSelector.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1294
            aClass addSelector:javaSelector withMethod:cloneCode.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1295
        ]
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
    "Created: / 5.11.1998 / 19:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1299
    "Modified: / 5.11.1998 / 19:37:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1300
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1301
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1302
deinitialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1303
    StandardThreadGroup := nil.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1304
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1305
    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
  1306
        KnownWindows do: [:v | v isTopView ifTrue: [ v destroy ] ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1307
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1308
    JavaWindowGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1309
    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
  1310
    OpenFileTable := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1311
    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
  1312
    SystemClassLoader := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1314
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1315
     JavaVM deinitialize"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1317
    "Created: / 03-01-1998 / 21:28:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1318
    "Modified: / 03-12-1998 / 20:33:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1319
    "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
  1320
    "Modified: / 16-11-2011 / 09:46:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1321
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1323
deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1324
    "deinstall additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1326
    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1327
        #'clone()Ljava/lang/Object;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1328
        #'equals(Ljava/lang/Object;)Z'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1329
        #'toString()Ljava/lang/String;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1330
        #'getClass()Ljava/lang/Class;'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1331
     ) do:[:sel |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1332
        (Object implements:sel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1333
            Class withoutUpdatingChangesDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1334
                Object removeSelector:sel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1335
            ]
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
     self deinitializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1341
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1343
    "Created: / 4.2.1998 / 21:37:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1344
    "Modified: / 5.12.1998 / 15:27:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1345
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1346
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1347
flushClasses
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1348
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1349
    ClassRegistry notNil ifTrue:[
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1350
        ClassRegistry flush
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1351
    ].
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
    "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
  1354
!
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  1355
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1356
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1357
    DUMMY_LONG_HIGHWORD := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1358
    DUMMY_DOUBLE_HIGHWORD := 2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1359
    StandardThreadGroup := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1360
    NoAudio := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1361
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1362
    "/ NoAudio := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1363
    
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
  1364
    JavaConsoleStream := "Transcript"Stdout.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1365
    FullExceptionTrace := StackTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1366
    WindowOPTrace := DrawOPTrace := EventTrace := ThreadTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1367
    MonitorTrace := ExceptionTrace := FileOpenTrace := FileIOTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1368
    ExceptionDebug := ExitDebug := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1369
    ExceptionDebugPatterns := Set new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1370
    WindowCreationTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1371
    FileOpenConfirmation := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1372
    SocketConnectConfirmation := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1373
    WindowOPTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1374
    MonitorTrace := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1375
    ThreadTrace := false.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1376
    UnhandledJavaExceptionSignal := (Signal new) mayProceed: true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1377
    UnhandledJavaExceptionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1378
        message: #unhandledJavaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1379
    UnhandledJavaExceptionSignal notifierString: 'unhandled java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1380
    JavaExceptionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1381
    JavaExceptionSignal nameClass: self message: #javaExceptionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1382
    JavaExceptionSignal notifierString: 'java exception'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1383
    UnimplementedInstructionSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1384
    UnimplementedInstructionSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1385
        message: #unimplementedInstructionSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1386
    UnimplementedInstructionSignal notifierString: 'unimplemented instruction'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1387
    UnimplementedNativeMethodSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1388
    UnimplementedNativeMethodSignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1389
        message: #unimplementedNativeMethodSignal.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1390
    UnimplementedNativeMethodSignal 
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1391
        notifierString: 'unimplemented native method'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1392
    BadMessageSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1393
    BadMessageSignal nameClass: self message: #badMessageSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1394
    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
  1395
    InternalErrorSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1396
    InternalErrorSignal nameClass: self message: #internalErrorSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1397
    InternalErrorSignal notifierString: 'internal error'.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1398
    CallHandlerSignal := (Signal new) mayProceed: false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1399
    CallHandlerSignal nameClass: self message: #callHandlerSignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1400
    CallHandlerSignal notifierString: 'internal signal'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1401
    StdinReplacementFileQuerySignal := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1402
    StdinReplacementFileQuerySignal nameClass: self
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1403
        message: #stdinReplacementFileQuerySignal.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1404
    StdinReplacementFileQuerySignal notifierString: 'asking for stdin stream'.
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  1405
    JavaPrivilegedAccessQuery := QuerySignal new.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1406
    JavaPrivilegedAccessQuery defaultAnswer: false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1407
    AssertionsEnabled := true.
1069
d5d204ceb991 JavaVM: Added ClassRegistry initialization into JavaVM>>initialize
vranyj1
parents: 1063
diff changeset
  1408
    ClassRegistry := JavaClassRegistry new.
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  1409
    FinalizationEnabled := true.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  1410
    EagerResolvingEnabled := false.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1411
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1412
    ObjectMemory addDependent: self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1413
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1414
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1415
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1416
     JavaVM initialize"
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  1417
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1418
    "Created: / 02-01-1998 / 18:02:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1419
    "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
  1420
    "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
  1421
    "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
  1422
    "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
  1423
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1424
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1425
initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1426
    "install additional java protocol in smalltalk classes, req'd for java programs"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1428
    "/ since we use smalltalk Arrays for JavaArray, some
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1429
    "/ additional (java-) protocol is required.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1430
    "/ This is also useful, when Smalltalk objects are passed to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1431
    "/ java ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1432
    "/ We should implement all of the java.lang.Object protocol in
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1433
    "/ Object, to be on the bright side of life; more of this later ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1435
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1436
        compile:'__clone
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1437
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1438
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1439
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1440
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1442
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1443
        selector:#'__clone' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1444
        asJavaMethod:#'clone()Ljava/lang/Object;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1445
        fakedSource:'#''clone()Ljava/lang/Object;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1446
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1447
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1448
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1449
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1450
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1451
    ^ self shallowCopy'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1452
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1453
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
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1457
        compile:'__equals:arg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1458
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1459
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1460
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1461
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1463
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1464
        selector:#'__equals:' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1465
        asJavaMethod:#'equals(Ljava/lang/Object;)Z' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1466
        fakedSource:'#''equals(Ljava/lang/Object;)Z''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1467
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1468
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1469
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1470
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1472
    ^ (arg = self) ifTrue:[1] ifFalse:[0]'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1473
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1474
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
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1478
        compile:'__toString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1479
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1480
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1481
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1482
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1484
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1485
        selector:#'__toString' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1486
        asJavaMethod:#'toString()Ljava/lang/String;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1487
        fakedSource:'#''toString()Ljava/lang/String;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1488
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1489
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1490
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1491
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1493
    ^ Java as_String:(self displayString)'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1494
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1495
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
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1499
        compile:'__getClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1500
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1501
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1502
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1503
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1504
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1505
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1506
        selector:#'__getClass' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1507
        asJavaMethod:#'getClass()Ljava/lang/Class;' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1508
        fakedSource:'#''getClass()Ljava/lang/Class;''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1509
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1510
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1511
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1512
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1514
    ^ JavaVM javaClassObjectForClass:self class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1515
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1516
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
    self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1520
        compile:'__hashCode
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1521
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1522
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1523
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1524
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1526
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1527
        selector:#'__hashCode' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1528
        asJavaMethod:#'hashCode()I' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1529
        fakedSource:'#''hashCode()I''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1530
    "this is smalltalk code with a java selector ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1531
     (This source cannot be accepted in the browser, 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1532
      since it has a funny selector.)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1533
     Has been added by JavaVM>>initializeAdditionalJavaProtocol"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1535
    ^ self identityHash'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1536
        in:Object.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1537
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
     self initializeAdditionalJavaProtocol
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1541
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1542
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1543
    "Modified: / 28-01-1997 / 19:38:58 / stefan"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1544
    "Modified: / 22-01-1998 / 21:23:40 / av"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1545
    "Created: / 04-02-1998 / 21:35:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1546
    "Modified: / 30-12-1998 / 21:07:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1547
    "Modified: / 25-10-2010 / 16:26:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1548
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1550
initializeBaseClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1551
    "load req'd base classes"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1552
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1553
    #( 'java.lang.Object'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1554
     'java.lang.Class'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1555
     'java.lang.String'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1556
     'java.lang.System' ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1557
            do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1558
                :cName | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1559
                (self classForName: cName) isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1560
                    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1561
                        warn: ('JavaVM: could not find required class: ' , cName asText allBold 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1562
                                , '\\Please check the Java settings (javaHome)') withCRs.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1563
                    AbortSignal raise.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1564
                    ^ self
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1565
                ]
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
     self initializeBaseClasses"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1570
    "Created: / 3.1.1998 / 21:13:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1571
    "Modified: / 23.12.1999 / 19:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1572
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1573
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1574
initializeJavaResources
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1575
    self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1576
    self initializePrimitiveClasses.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1577
    self initializeOpenFileTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1578
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1579
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1580
     JavaVM releaseAllMonitors"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1581
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1582
    "Created: / 02-01-1998 / 18:04:05 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1583
    "Modified: / 07-01-1998 / 22:58:10 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1584
    "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
  1585
    "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
  1586
!
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
initializeMonitorTable
1553
ee3e63c04778 JavaVM: increased initial old space allocation, create huge LockTable to prevent its realloction
vranyj1
parents: 1552
diff changeset
  1589
    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
  1590
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1591
    LockTableAccess name: 'JavaVM lock table access mutex'.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1592
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1593
        log: 'Initializing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1594
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  1595
        facility: #JVM.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1596
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  1597
    Logger 
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1598
        log: 'Initializing AcquiredMonitorsPerProcess'
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1599
        severity: #debug
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1600
        facility: #JVM.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1601
    AcquiredMonitorsPerProcess := IdentityDictionary new.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1602
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1603
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1604
     JavaVM initializeMonitorTable"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1605
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1606
    "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
  1607
!
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1608
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1609
initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1610
    OpenFileTable := OrderedCollection 
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1611
                        with:Stdin 
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1612
                        with:("JavaConsoleStream ?" Stdout)
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1613
                        with:("JavaConsoleStream ?" Stderr).
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1614
    OpenFileTableLock := RecursionLock new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1615
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1616
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1617
     JavaVM initializeOpenFileTable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1618
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1619
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1620
    "Modified: / 06-08-1997 / 00:40:19 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  1621
    "Created: / 02-01-1998 / 18:04:32 / cg"
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  1622
    "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
  1623
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1625
initializePrimitiveClasses
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1626
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1627
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1628
    "/    #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1629
    "/        (#byte    'B' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1630
    "/        (#short   'S' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1631
    "/        (#int     'I' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1632
    "/        (#long    'J' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1633
    "/        (#boolean 'Z' 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1634
    "/        (#char    'C' 2)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1635
    "/        (#float   'F' 4)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1636
    "/        (#double  'D' 8)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1637
    "/        (#void    'V' 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1638
    "/    ) triplesDo:[:nm :sig :len |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1639
    "/        |jClass classInst|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1640
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1641
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1642
    "/        "/ create a javaClass for it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1643
    "/        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1644
    "/        jClass := Java at:'java.lang.Class'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1645
    "/        jClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1646
    "/            classInst := jClass new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1647
    "/            JavaClasses at:nm put:classInst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1648
    "/            JavaClasses at:classInst put:nm.
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
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1652
     self initializePrimitiveClasses"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1654
    "Modified: / 22-10-1998 / 01:56:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1655
    "Modified: / 20-12-2010 / 23:39:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1656
    "Modified: / 28-01-2011 / 14:57:38 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1657
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1659
initializeReflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1661
    Reflection := JavaVM::Reflection for: self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1663
    "Created: / 21-12-2010 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1664
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1666
initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1667
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1668
     being already loaded. (used with jdk < 1.2)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1670
    LibPath := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1671
                        '__builtIn__' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1672
                        '/usr/local/lib' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1673
                        '/usr/local/lib/java'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1674
                ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1676
    SimulatedLibs := #(
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1677
                        '__builtIn__/net' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1678
                        '__builtIn__/awt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1679
                        '__builtIn__/tawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1680
                        '__builtIn__/winawt' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1681
                        '__builtIn__/jpeg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1682
                        '__builtIn__/mmedia'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1683
                        '__builtIn__/zip'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1684
                        '__builtIn__/math'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1685
                        '__builtIn__/sysresource'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1686
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1687
                        "/ KAVA ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1688
                        '__builtIn__/agent'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1690
                        "/ MS-java ... 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1691
                        '__builtIn__/msawt'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1692
                        '__builtIn__/javart'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1694
                        "/ 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1695
                        '__builtIn__/jpeg_sun' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1696
                      ).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1698
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1699
     self initializeSimulatedLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1700
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1701
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1702
    "Created: / 4.1.1998 / 19:05:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1703
    "Modified: / 17.11.1998 / 23:53:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1704
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1705
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1706
initializeSimulatedNativeLibs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1707
    "return a collection of native libs which are considered 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1708
     being already loaded (used with jdk >= 1.2)"
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1709
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1710
    OperatingSystem isUNIXlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1711
        SimulatedNativeLibs := #( 'libawt.so' 'libnet.so' 'libcmm.so' 'libzip.so' 'libnio.so'
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1712
                                  'libmanagement.so'        "/ Management Beans - req'd by Tomcat
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1713
                                  'libjpeg.so' 'liblcms.so' "/ Some UI stuff - req'd by Tomcat !!?!!
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1714
                                  'libfontmanager.so'       "/ req'd by java.text.Bidi
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1715
                                    ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1716
        ^ self.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1717
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1718
    OperatingSystem isMSWINDOWSlike ifTrue: [
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1719
        SimulatedNativeLibs := #( 'awt.dll' 'net.dll' 'cmm.dll' 'zip.dll' 'nio.so'
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1720
                                  'management.dll'          "/ Management Beans - req'd by Tomcat
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1721
                                  'fontmanager.dll'          "/ req'd by java.text.Bidi
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1722
                                ).
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1723
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1724
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1725
    SimulatedNativeLibs := #().
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1726
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1727
    "
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  1728
     self initializeSimulatedNativeLibs"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1730
    "Modified: / 27-01-1998 / 18:43:10 / cg"
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  1731
    "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
  1732
    "Modified: / 21-12-2011 / 23:03:35 / jv"
1493
672d89065a80 - JavaVM
vranyj1
parents: 1491
diff changeset
  1733
    "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
  1734
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1736
initializeSimulatedNativeMemory
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1737
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1738
    SimulatedNativeMemory := JavaNativeMemory new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1740
    "Created: / 07-12-2010 / 21:07:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1741
    "Modified: / 07-12-2010 / 23:45:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1742
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1743
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1744
initializeSystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1745
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1746
    | java_lang_ClassLoader |
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1747
    
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1748
    java_lang_ClassLoader := JavaVM classForName: 'java.lang.ClassLoader'.
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1749
    (SystemClassLoader := java_lang_ClassLoader instVarNamed:#scl) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1750
        SystemClassLoader := java_lang_ClassLoader perform: #'getSystemClassLoader()Ljava/lang/ClassLoader;'
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1751
    ].
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1752
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1753
    "Created: / 30-10-2011 / 12:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1754
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1755
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1756
initializeSystemPropertiesInto: props 
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1757
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1758
   | cpu cpu2 os |
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1759
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1760
    "/ use JAVA compatible cpu-name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1761
    cpu := OperatingSystem getCPUType.
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1762
    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
  1763
    cpu = 'i386' ifTrue: [ cpu := 'ix86' ].
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1764
    (OperatingSystem getSystemInfo at:#machine) = 'x86_64' ifTrue:[
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1765
        cpu2 := 'amd64'    
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1766
    ].
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  1767
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1768
    SimulatedOS notNil ifTrue: [ os := SimulatedOS ] ifFalse: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1769
        os := OperatingSystem getOSType.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1770
        os := os asUppercaseFirst.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1771
    ].
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1772
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1773
    props addPairsFrom:
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1774
        {
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1775
            'java.runtime.name'             . 'OpenJDK Runtime Environment' .
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1776
            'sun.boot.library.path'         . OperatingSystem isMSWINDOWSlike 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1777
                                                    ifTrue:[(Java release jreHome / 'bin' ) asString]
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1778
                                                    ifFalse:[(Java release jreHome / 'lib' / cpu2 ) asString].
1254
275b55df3c47 Cosmetics in properties
vranyj1
parents: 1253
diff changeset
  1779
            'java.vm.version'               . Smalltalk versionString .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1780
            'java.vm.vendor'                . 'eXept Software AG & SWING Research Group' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1781
            'java.vendor.url'               . 'http://www.exept.de & http://swing.fit.cvut.cz' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1782
            'path.separator'                .  OperatingSystem pathSeparator asString. 
1254
275b55df3c47 Cosmetics in properties
vranyj1
parents: 1253
diff changeset
  1783
            'java.vm.name'                  . 'Smalltalk/X' .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1784
            'file.encoding.pkg'             . 'sun.io' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1785
            'sun.java.launcher'             . 'SUN_STANDARD' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1786
            'user.country'                  . 'US' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1787
            'sun.os.patch.level'            . 'unknown' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1788
            'java.vm.specification.name'    . 'Java Virtual Machine Specification' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1789
            'user.dir'                      . Filename currentDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1790
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1791
            'java.awt.graphicsenv'          . 'sun.awt.X11GraphicsEnvironment' .
1260
vranyj1
parents: 1257
diff changeset
  1792
            'java.endorsed.dirs'            . (Java release jreHome / 'lib' / 'endorsed') asString. 
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1793
            'os.arch'                       . cpu .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1794
            'java.io.tmpdir'                . Filename tempDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1795
            'line.separator'                . Character cr asString .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1796
            'java.vm.specification.vendor' . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1797
            'os.name'                       . os .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1798
            'sun.jnu.encoding'              . 'UTF-8' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1799
            'java.library.path'             . self defaultJavaLibraryPath.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1800
            'java.specification.name'       . 'Java Platform API Specification' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1801
            'java.class.version'            . '50.0' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1802
            'sun.management.compiler'       . 'Smalltalk/X jinterpreter' .
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1803
            'os.version'                    . OperatingSystem isMSWINDOWSlike 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1804
                                                    ifTrue:[OperatingSystem getSystemInfo at: #release] 
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1805
                                                    ifFalse:[OperatingSystem getSystemInfo at: #version].
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1806
            'user.home'                     . Filename homeDirectory pathName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1807
            'user.timezone'                 . '' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1808
            'java.awt.printerjob'           . 'sun.print.PSPrinterJob' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1809
            'file.encoding'                 . 'UTF-8' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1810
            'java.specification.version'    . '1.6' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1811
            'java.class.path'               . self defaultCLASSPATH.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1812
            'user.name'                     . OperatingSystem getLoginName .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1813
            'java.vm.specification.version' . '1.0' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1814
            "'sun.java.command'            . 'SystemProperties' ."
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1815
            'java.home'                     . '/usr/lib/jvm/java-6-openjdk/jre' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1816
            'sun.arch.data.model'           . '32' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1817
            'user.language'                 . Smalltalk language .   
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1818
            'java.specification.vendor'     . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1819
            'java.vm.info'                  . 'Smalltalk/X 6.2.1' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1820
            'java.version'                  . '1.6' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1821
            'java.ext.dirs'                 . self defaultExtDirs .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1822
            'sun.boot.class.path'           . self defaultSunBootLibraryPath.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1823
            'java.vendor'                   . 'Sun Microsystems Inc.' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1824
            'file.separator'                . Filename separatorString .
1260
vranyj1
parents: 1257
diff changeset
  1825
            'java.vendor.url.bug'           . 'https://swing.fit.cvut.cz/projects/stx-libjava/newticket' .
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1826
            'sun.io.unicode.encoding'       . 'UnicodeLittle' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1827
            'sun.cpu.endian'                . 'little' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1828
            'sun.desktop'                   . 'gnome' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1829
            'sun.cpu.isalist'               . '' .
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1830
        }.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1831
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1832
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1833
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1834
    "/ props at:'user.dir'           put:(Filename currentDirectory pathName).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1835
    "/props at:'awt.toolkit'        put:(self defaultWindowingToolKit).
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1836
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1837
    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
  1838
    props at: 'hotjava.home' put: (self defaultHotJavaHome).
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1839
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1840
    "/ new with jdk 1.1.8
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1841
    "/ undocumented ?
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  1842
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1843
    "/ suppress copyright view in appletViewer ...
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1844
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1845
    props at: 'appletviewer.version' put: '1.1'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1846
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1847
    "/ new with jdk 1.2
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1848
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1849
    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
  1850
    props at: 'java.awt.fonts' put: '/usr/lib/X11/fonts'.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1851
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1852
    "/ jws
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1853
    "/props at:'jws.home'             put:(self defaultJWSHome).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1854
    "/ new with jws 2.0 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1855
    "/props at:'jws.startcmd'         put:'jws.showwin.mainide'.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1856
    
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1857
    props at: 'stx.libjava.tomcat.dir'
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1858
        put: (JavaLibraries directory / 'tomcat6') pathName.
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1859
    
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  1860
"/    props at: 'sun.misc.URLClassPath.debug' put: 'true'. 
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1861
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1862
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1864
    "
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  1865
     self initializeSystemPropertiesInto:(Dictionary new)"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1867
    "Created: / 03-01-1998 / 14:26:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1868
    "Modified: / 27-01-2000 / 02:20:18 / cg"
1078
614cf5325969 tomcat junit test is running (not passing:)
hlopkmar
parents: 1075
diff changeset
  1869
    "Modified (format): / 03-11-2011 / 12:40:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  1870
    "Modified: / 12-12-2011 / 15:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1310
0a02c439f0ee JavaVM: Fixes to boot on Windows
vranyj1
parents: 1281
diff changeset
  1871
    "Modified: / 21-12-2011 / 23:05:11 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1872
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1873
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1874
initializeVM
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1875
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1876
    OperatingSystem initResources.
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  1877
1368
5f502e712403 Groovy language support and integration
vranyj1
parents: 1353
diff changeset
  1878
    "/Native code optimization is broken (for now), force-disable it"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  1879
    ObjectMemory javaNativeCodeOptimization: false.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1880
    
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1881
    "Java requires a huge stack. Change default to 16 MB.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1882
     Observations:
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1883
     - Groovy 'rnd = new java.security.SecureRandom()' requires > 4MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1884
     - ant run on Groovy 1.8.7 source requires > 8MB
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1885
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
  1886
    Process defaultMaximumStackSize: ((1024 * 1024 * 16) max: Process defaultMaximumStackSize).
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1887
    
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1888
    "Java Classes are huge and there is a (unfixed) bug in 2-phase oldspace
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1889
     compress, so try to avoid it by pre-allocating more oldspace."
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1890
    OldspaceIncreased ~~ true ifTrue:[
1607
c8924329bb5d Reserve at least 64MB oldspace for Java
vranyj1
parents: 1605
diff changeset
  1891
        ObjectMemory moreOldSpace: 64"MB"*(1024*1024).
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1892
        OldspaceIncreased := true.
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1893
    ].
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
  1894
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1895
    ClassRegistry := JavaClassRegistry for: self.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  1896
    ClassLoaderQuerySignal := Query new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1897
    JavaObject autoload.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1898
    JavaContext autoload.
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1899
    MonitorTrace isNil ifTrue: [ self initialize ].
1468
6024720925ec - JavaVM
vranyj1
parents: 1461
diff changeset
  1900
    MonitorTraceId := 0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1901
    self initializeAdditionalJavaProtocol.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  1902
    self initializeJavaResources.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1903
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1904
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1905
    Java markAllClassesUninitialized.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1906
    ZipCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1907
    ZipEntryCache := OrderedCollection new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  1908
    ZipInflaters := OrderedCollection new.
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  1909
    FinalizationLobby := JavaFinalizationRegistry new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1910
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1911
    "/ force re-resolving;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1912
    "/ otherwise, class-inits would not be called
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1913
    "/ by resolver ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1914
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1915
    JavaNativeMethod flushAllCachedNativeMethods.
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
  1916
    JavaMethod 
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1917
        allSubInstancesDo: [
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1918
            :m | 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1919
            m checked: false.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1920
            m code: nil.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1921
        ].
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1922
    ObjectMemory flushCaches.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1923
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1924
    "/ sigh - must flush inline caches.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1925
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1926
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1927
    self initializeSimulatedLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1928
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1929
    "/ < jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1930
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1931
    self initializeSimulatedNativeLibs.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1932
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1933
    "/ >= jdk 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1934
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1935
    self initializeSimulatedNativeMemory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1936
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1937
    "/>  jdk 6
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1938
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1939
    self initializeOpenFileTable.
907
9ab15562799b JavaVM: Initialization fix
vranyj1
parents: 906
diff changeset
  1940
    self initializeReflection.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1941
    self initializeBaseClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1942
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1943
    Java initSystemClass.
1250
3904fc7212b4 forgotten methods :)
hlopkmar
parents: 1249
diff changeset
  1944
    Java initializeCurrentThread.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1945
    self initializeSystemClassLoader.
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1946
    ObjectMemory addDependent: self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  1947
    StartupTime := OperatingSystem getOSTime.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  1948
    FinalizationLobby startFinalizationProcessAt: 5.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  1949
    PerfCounters := Performance for: self.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  1950
    ThreadInterrupts := Dictionary new.
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  1951
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  1952
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1953
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1954
     JavaVM initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1955
     JavaVM initializeVM."
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  1956
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1957
    "Created: / 03-01-1998 / 21:29:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1958
    "Modified: / 14-12-1999 / 18:58:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1959
    "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
  1960
    "Modified: / 24-02-2012 / 13:59:29 / Marcel Hlopko <hlopik@gmail.com>"
1382
42f95d2b8de1 reverted crap :)
hlopkmar
parents: 1381
diff changeset
  1961
    "Modified: / 24-02-2012 / 14:37:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  1962
    "Modified: / 17-08-2012 / 11:28:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1963
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1965
initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1966
    |uClass updater p|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1968
    uClass := JAVA::sun::awt::ScreenUpdater.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1969
    uClass notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1970
        updater := uClass instVarNamed:'updater'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1971
        updater notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1972
            p := self stProcessForJavaThread:updater
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1973
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1974
        (updater isNil or:[p isNil or:[p isDead]]) isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1975
            self initializeVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1976
            ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1977
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1978
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1980
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1981
        self initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1982
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1983
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1984
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1985
     JavaVM initializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1986
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1988
    "Created: / 15.1.1998 / 17:32:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1989
    "Modified: / 24.12.1999 / 02:18:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1990
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  1991
1374
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1992
reboot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1993
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1994
    Java flushAllJavaResources.
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1995
    self boot
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1996
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1997
    "Created: / 21-02-2012 / 18:10:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1998
!
82d8ffc58498 Added #boot and #reboot
vranyj1
parents: 1372
diff changeset
  1999
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2000
reinitializeSockets
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2001
    "Reopens all server-sockets (i.e., listening sockets bound to a port).
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2002
     Called upon restarting from image"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2003
1635
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2004
    OpenFileTable notNil ifTrue:[
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2005
        OpenFileTable do:[:each|each isSocket ifTrue:[each reOpenIfPossible]]
20f3095aef23 - JavaLibraries
vranyj1
parents: 1617
diff changeset
  2006
    ].
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2007
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2008
    "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
  2009
!
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2010
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2011
reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2012
    |classesToInit|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2014
    self releaseAllJavaResources.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2015
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2016
    JavaConsoleStream := Transcript.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2018
    Java initAllStaticFields.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2019
    Java markAllClassesUninitialized.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2021
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2022
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2023
    classesToInit := JavaClass orderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2024
    JavaClass startRememberingOrderOfClassInits.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2026
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2027
"/    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2029
    classesToInit do:[:jClass |
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2030
        jClass classInit
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2031
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2032
    Java initSystemClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2033
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2034
    "Created: / 12-11-1998 / 15:37:52 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2035
    "Modified: / 17-11-1998 / 16:10:11 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2036
    "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
  2037
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2039
reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2040
    (JavaEventThread isNil or:[JavaEventThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2041
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2042
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2043
    (JavaEventQueueThread isNil or:[JavaEventQueueThread isDead]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2044
        ^ self reinitializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2045
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2046
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2047
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2048
     JavaVM reinitializeVMIfNoEventThreadRunning
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2049
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2051
    "Created: / 24.11.1998 / 15:45:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2052
    "Modified: / 24.12.1999 / 02:36:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2053
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2055
releaseAllJavaResources
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2056
    self deinitialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2057
    FirstWindowCreationSemaphore := Semaphore new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2058
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2059
    LoadedLibs := nil.
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2060
    LoadedNativeLibs := nil.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2061
    ImageStretchCache := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2062
    LastGraphics := LastGC := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2063
    SimulatedNativeMemory := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2064
    self initializePrimitiveClasses.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2065
    self terminateAllThreads.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2066
    "/self releaseAllMonitors.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2067
    self releaseAllWindows.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2068
    self releaseAllStreams.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2070
    "
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2071
     JavaVM releaseAllJavaResources"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2072
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2073
    "Created: / 07-01-1998 / 22:49:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2074
    "Modified: / 24-12-1999 / 02:33:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2075
    "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
  2076
    "Modified: / 16-11-2011 / 20:27:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2077
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2079
releaseAllMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2080
    LockTable := WeakIdentityDictionary new.
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2081
    LockTableAccess := Semaphore "RecursionLock" forMutualExclusion.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2082
    LockTableAccess name: 'JavaVM lock table access mutex'.
1118
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2083
    EnteredMonitorsPerProcess notNil ifTrue: [
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2084
        EnteredMonitorsPerProcess 
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2085
            keysAndValuesDo: [:p :value | value size > 0 ifTrue: [ self breakPoint: #mh ] ]
1c76866b4df4 and more fixes.. hope never dies
hlopkmar
parents: 1117
diff changeset
  2086
    ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2087
    self releaseLeftOverMonitors.
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2088
    Logger 
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2089
        log: 'Clearing EnteredMonitorsPerProcess'
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2090
        severity: #debug
1119
0f4d4bc3d346 warning!! bug possibly fixed :) probably not but maybe ;)
hlopkmar
parents: 1118
diff changeset
  2091
        facility: #JVM.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2092
    EnteredMonitorsPerProcess := IdentityDictionary new.
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2093
    Logger 
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2094
    log: 'Clearing AcquiredMonitorsPerProcess'
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2095
    severity: #debug
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2096
    facility: #JVM.
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2097
        EnteredMonitorsPerProcess := IdentityDictionary new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2098
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2099
    "
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2100
     JavaVM releaseAllMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2101
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2102
    "Created: / 02-01-1998 / 18:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2103
    "Modified: / 07-01-1998 / 22:58:10 / cg"
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  2104
    "Modified: / 17-11-2011 / 17:00:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2105
    "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
  2106
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2108
releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2109
    OpenFileTable notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2110
	OpenFileTable do:[:aStream |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2111
	    aStream notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2112
		aStream ~~ Stdin ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2113
		    aStream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2114
			aStream ~~ Stderr ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2115
			    aStream ~~ JavaConsoleStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2116
				aStream isExternalStream ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2117
				    aStream shutDown
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2118
				]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2119
			    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2120
			]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2121
		    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2122
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2123
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2124
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2125
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2126
    self initializeOpenFileTable.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2127
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2128
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2129
     JavaVM releaseAllStreams
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2130
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2131
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2132
    "Created: / 7.1.1998 / 22:57:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2133
    "Modified: / 4.2.1998 / 19:53:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2134
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2136
releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2137
    KnownWindows notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2138
	KnownWindows do:[:aView |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2139
	    aView destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2140
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2141
	KnownWindows := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2142
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2144
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2145
     self releaseAllWindows
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2146
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2148
    "Created: / 7.1.1998 / 22:58:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2149
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2151
releaseLeftOverMonitors
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2152
    "release monitors held by dead processes"
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2153
    
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2154
    | deadProcesses |
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2155
    deadProcesses := IdentitySet new.
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2156
    EnteredMonitorsPerProcess notNil ifTrue: [
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2157
        EnteredMonitorsPerProcess keysAndValuesDo: [
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2158
            :p :monitors | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2159
            p isDead ifTrue: [
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2160
 
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2161
                monitors do: [
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2162
                    :mon | 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2163
                    Logger 
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2164
                        log: 'release leftover monitor ...'
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2165
                        severity: #info
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2166
                        facility: 'JVM'.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2167
                    mon release
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2168
                ].
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2169
                deadProcesses add: p.
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2170
            ]
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2171
        ].
1117
335d96c16899 fixes coming :) first of many..
hlopkmar
parents: 1116
diff changeset
  2172
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2173
    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
  2174
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2175
    "
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  2176
     JavaVM releaseLeftOverMonitors"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2177
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2178
    "Created: / 08-01-1998 / 17:29:26 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  2179
    "Modified: / 14-09-2011 / 22:06:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  2180
    "Modified: / 29-11-2011 / 14:26:25 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2181
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2182
1570
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2183
releasehSystemClassLoader
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2184
    SystemClassLoader := nil.
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2185
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2186
    "Created: / 30-07-2012 / 17:13:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2187
!
e6b2fd21ba17 - JavaClassRegistry
vranyj1
parents: 1564
diff changeset
  2188
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2189
systemProperties
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2190
    |props|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2191
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2192
    props := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2193
    self initializeSystemPropertiesInto:props.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2194
    ^ props
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2195
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2196
    "Created: / 3.1.1998 / 14:25:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2197
    "Modified: / 3.1.1998 / 14:32:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2198
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2199
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2200
update:what with:aParameter from:changedObject
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2201
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2202
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2203
    #earlyRestart is send first, nothing has been setup yet.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2204
    (should be used to flush all device dependent entries)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2205
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2206
    what == #earlyRestart ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2207
        self initializeMonitorTable.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2208
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2209
        ^self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2210
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2211
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2212
    "#returnFromSnapshot is sent last (should be used to restart processes, reOpen 
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2213
    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
  2214
    (Notice that positionable fileStreams are already reopened and repositioned)
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2215
    "
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2216
    what == #returnFromSnapshot ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2217
        self reinitializeSockets.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2218
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2219
        ^self
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2220
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2221
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2222
     JavaVM initializeVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2223
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2224
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2225
    ObjectMemory dependents
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2226
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2227
    "Created: / 09-01-1998 / 10:30:13 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2228
    "Modified: / 06-11-1998 / 00:40:53 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  2229
    "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
  2230
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2232
!JavaVM class methodsFor:'Signal constants'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2233
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2234
badMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2235
    ^ BadMessageSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2237
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2238
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2240
callHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2241
    ^ CallHandlerSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2243
    "Created: / 2.1.1998 / 18:07:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2244
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2245
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2246
classLoaderQuerySignal
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2247
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2248
    <resource: #obsolete>
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2249
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2250
    self breakPoint: #jv.
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2251
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2252
    ^JavaClassReader classLoaderQuerySignal
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2253
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2254
    "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
  2255
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2256
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2257
internalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2258
    ^ InternalErrorSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2259
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2260
    "Created: / 2.1.1998 / 18:07:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2261
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2263
javaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2264
    "^ JavaExceptionSignal"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2265
    ^JavaError
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2266
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2267
    "Created: / 02-01-1998 / 18:05:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2268
    "Modified: / 01-03-2011 / 21:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2269
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2270
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2271
privilegedAccessQuery
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2272
    ^ JavaPrivilegedAccessQuery.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2273
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2274
    "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
  2275
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  2276
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2277
stdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2278
    ^ StdinReplacementFileQuerySignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2279
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2280
    "Created: / 2.1.1998 / 18:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2281
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2282
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2283
unhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2284
    ^ UnhandledJavaExceptionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2285
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2286
    "Created: / 2.1.1998 / 18:05:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2287
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2289
unimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2290
    ^ UnimplementedInstructionSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2292
    "Created: / 2.1.1998 / 18:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2293
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2295
unimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2296
    ^ UnimplementedNativeMethodSignal
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2298
    "Created: / 2.1.1998 / 18:06:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2299
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2301
!JavaVM class methodsFor:'accessing'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2302
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2303
addClass:aJavaClass definedBy:aJavaClassLoader 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2304
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2305
    self assert: aJavaClass classLoader == aJavaClassLoader.
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2306
    ^ ClassRegistry registerClass:aJavaClass
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2307
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2308
    "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
  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
addSelector:newSelector withMethod:newMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2312
    super addSelector:newSelector withMethod:newMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2313
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2314
    "/JavaNativeMethod may not be loaded..."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2315
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2316
    (Smalltalk at:#JavaNativeMethod) 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2317
        ifNotNil:[JavaNativeMethod flushAllCachedNativeMethods].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2318
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2319
    "Created: / 24-12-1999 / 03:12:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2320
    "Modified: / 02-02-2011 / 04:38:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2321
    "Modified: / 02-02-2011 / 23:38:08 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2324
assertionsEnabled: aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2325
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2326
    AssertionsEnabled := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2328
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2329
        JavaVM assertionsEnabled: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2330
        JavaVM assertionsEnabled: false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2331
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2333
    "Created: / 24-11-2010 / 09:02:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2334
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2335
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2336
classRegistry
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2337
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2338
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2339
    "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
  2340
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2341
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2342
extClassLoader
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2343
    ^ 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
  2344
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2345
    "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
  2346
    "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
  2347
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2348
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2349
finalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2350
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2351
    ^FinalizationEnabled
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2352
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2353
    "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
  2354
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2355
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2356
finalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2357
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2358
    ^FinalizationLobby
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2359
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2360
    "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
  2361
!
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  2362
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2363
javaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2364
     ^ JavaEventQueueThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2366
    "Created: / 24.12.1999 / 02:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2367
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2368
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2369
javaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2370
     ^ JavaEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2371
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2372
    "Created: / 8.1.1999 / 17:05:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2373
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2375
javaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2376
     ^ JavaScreenUpdaterThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2377
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2378
    "Created: / 8.1.1999 / 17:06:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2379
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2380
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2381
performance
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2382
    "Return an object keeping Java performance counters"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2383
    ^ PerfCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2384
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2385
    "Modified: / 14-08-2012 / 00:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2386
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  2387
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2388
reflection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2389
    ^ Reflection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2390
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2391
    "Created: / 28-01-2011 / 15:09:19 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2392
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2393
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2394
registry
1035
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2395
    ^ ClassRegistry.
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2396
712d2090e68b Small refactoring of class registry, more follows
vranyj1
parents: 1034
diff changeset
  2397
    "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
  2398
!
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2399
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2400
systemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2401
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2402
    ^SystemClassLoader
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2403
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2404
    "Created: / 30-10-2011 / 12:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2405
!
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2406
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2407
useSmalltalkInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2408
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2409
    JavaMethod makeMetaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2410
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2411
    "Created: / 23-02-2011 / 12:59:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2412
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2413
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2414
useVMInterpreter
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2416
    JavaMethod makeJavaMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2417
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2418
    "Created: / 23-02-2011 / 12:59:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2419
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2420
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2421
!JavaVM class methodsFor:'class access'!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2422
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2423
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2424
    ^self reflection arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2425
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2426
    "Created: / 05-07-2012 / 23:20:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2427
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
  2428
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2429
at: aString 
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2430
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2431
    ^ ClassRegistry classNamed: aString asInternalJavaClassName.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2432
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2433
    "Modified (comment): / 21-10-2011 / 12:14:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2434
    "Modified: / 23-10-2011 / 12:25:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2435
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2436
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2437
at: aString put: aJavaClass 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2438
    self breakPoint: #mh.
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2439
    self breakPoint: #jv.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2440
    "dont use me anymore"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2441
    ^ ClassRegistry registerClass: aJavaClass
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2442
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2443
    "Modified (comment): / 21-10-2011 / 12:14:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2444
    "Modified: / 23-10-2011 / 11:58:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2445
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2446
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2447
classForName: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2448
    "load class from registry - load using classLoader from query or JavaClassReader if absent"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2449
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2450
    
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2451
    ^ 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
  2452
        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
  2453
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  2454
    "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
  2455
    "Modified: / 02-11-2011 / 16:33:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2456
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2457
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2458
classForName: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2459
    "load class from registry - load using given classLoader if not nil"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2460
    
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2461
    | result |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2462
    result := self 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2463
                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
  2464
                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
  2465
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2466
                    | 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
  2467
                    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
  2468
                    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
  2469
                        "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
  2470
                        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
  2471
                        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
  2472
                            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
  2473
                        class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2474
                    ] ifTrue: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2475
                        self assert: (self booted)
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2476
                            description: 'Java VM is not booted and we are not using primordial class loader to load: ' 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2477
                                    , className.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2478
                        (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
  2479
                            "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
  2480
                            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
  2481
                            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
  2482
                                description: 'Class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2483
                                        , ' 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
  2484
                            class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2485
                        ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2486
                            (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
  2487
                                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
  2488
                                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
  2489
                                    description: 'Class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2490
                                            , ' 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
  2491
                                class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2492
                            ] ifFalse: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2493
                                "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
  2494
                                 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
  2495
                                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
  2496
                                    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
  2497
                                        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
  2498
                                    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
  2499
                                ] 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
  2500
                                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
  2501
                                            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
  2502
                                class 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
  2503
                                    Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2504
                                        log: 'Even ' , classLoader printString , ' was not able to load class ' 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2505
                                                , className
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2506
                                        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
  2507
                                        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
  2508
                                    nil
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2509
                                ] 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
  2510
                            ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2511
                        ]
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2512
                    ]
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2513
                ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2514
    result 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
  2515
        Logger 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2516
            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
  2517
            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
  2518
            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
  2519
    ] 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
  2520
    ^ result.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2521
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2522
    "Created: / 21-10-2011 / 12:01:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2523
    "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
  2524
    "Modified: / 02-11-2011 / 16:49:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2525
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2526
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2527
classForName: className definedBy: classLoader ifAbsentPut: aBlock 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2528
    "load class from registry - if absent evaluate given block to get loaded class"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2529
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2530
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2531
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2532
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2533
    ].
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2534
    result := ClassRegistry 
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2535
                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
  2536
                loader: classLoader
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2537
                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
  2538
    result notNil ifTrue: [
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  2539
        result := self makeArrayOf: result asDescribedBy: className.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
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.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2542
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2543
    "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
  2544
    "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
  2545
    "Modified (format): / 02-11-2011 / 16:09:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2546
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2547
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2548
classNamed: className 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2549
    "Return class with given name loaded by current classloader or nil if class is not yet loaded"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2550
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  2551
    ^ self classNamed: className definedBy: JavaClassReader classLoaderQuerySignal query.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2552
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2553
    "Modified: / 21-10-2011 / 12:09:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2554
    "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
  2555
    "Modified: / 28-10-2011 / 22:12:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2556
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2557
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2558
classNamed: className definedBy: classLoader 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2559
    "Return class with given name loaded by given classloader or nil if class is not yet loaded"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2560
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2561
    | result |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2562
    className asJavaComponentClassName isJavaPrimitiveTypeDescriptor ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2563
        ^ (JavaDescriptor fromString: className) javaClass.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2564
    ].
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2565
    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
  2566
                classForName: className asSlashedJavaClassName
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2567
                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
  2568
                ifAbsent: [ ^ nil ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2569
    ^ self makeArrayOf: result asDescribedBy: className.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2570
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2571
    "Created: / 21-10-2011 / 11:58:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1037
3dc5755c5fe4 JavaClassRegistry refactored
vranyj1
parents: 1036
diff changeset
  2572
    "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
  2573
    "Modified: / 01-11-2011 / 15:36:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2574
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2575
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2576
loadClassesIn: directory 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2577
"load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2578
The argument is string containing the name of the directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2579
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2580
Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2581
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2582
^ self loadClassesIn: directory matching: '*'.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2583
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2584
    "Modified: / 11-06-2011 / 13:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2585
    "Created: / 21-10-2011 / 12:40:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2586
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2587
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2588
loadClassesIn: directory matching: pattern 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2589
    "load all classes (.class files, strictly speaking) found in given directory.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2590
     The arguments are a string containing the name of the directory
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2591
     and a class name pattern. Only classes matching the pattern are loaded.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2592
     class names are matched using String>>matches:.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2593
     ALL CLASSES ARE INSTALLED!!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2594
     Returns a set of loaded classes."
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2595
    
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2596
    | dir  dirString  className  loadedClasses |
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2597
    dir := directory asFilename asAbsoluteFilename.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2598
    loadedClasses := Set new.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2599
    Java addToClassPath: dir pathName.
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2600
    JavaClassReader classLoaderQuerySignal answer: SystemClassLoader do:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2601
    
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2602
    dir 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2603
        recursiveDirectoryContentsAsFilenamesDo: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2604
            :filename | 
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2605
            (filename isRegularFile and: [ filename suffix = #class ]) ifTrue: [
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2606
                dirString := dir pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2607
                className := filename withoutSuffix pathName.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2608
                className := className subString: dirString size + 2 to: className size.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2609
                className := className copyReplaceAll: (Filename separator) with: $..
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2610
                (className matches: pattern) ifTrue: [
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2611
                    (self classNamed: className) isNil ifTrue:[
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2612
                        loadedClasses add: (self classForName:className).
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2613
                    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2614
                ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2615
            ]
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2616
        ].
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2617
    ].
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2618
    ^ loadedClasses.
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2619
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2620
    "Modified: / 21-10-2011 / 12:52:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1059
22fe06c9e367 Fixes in classloaders
vranyj1
parents: 1058
diff changeset
  2621
    "Modified: / 30-10-2011 / 14:02:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2622
! !
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  2623
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2624
!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
  2625
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2626
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
  2627
    | 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
  2628
    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
  2629
    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
  2630
        description: 'we want to use ExtClassLoader, 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
  2631
    class := ecl 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2632
                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
  2633
                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
  2634
    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
  2635
        description: 'we tried to load class ' , className 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2636
                , ' 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
  2637
                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
  2638
                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
  2639
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2640
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2641
    "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
  2642
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2643
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2644
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
  2645
    | class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2646
    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
  2647
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2648
            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
  2649
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2650
    ^ class
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2651
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2652
    "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
  2653
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2654
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2655
useUserDefinedCL: classLoader 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
  2656
    | classObject  class |
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2657
    classObject := classLoader 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2658
                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
  2659
                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
  2660
    class := self classForJavaClassObject: classObject.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2661
    class classLoader ifNil: [self breakPoint:#mh].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2662
    ^ class.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2663
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2664
    "Created: / 02-11-2011 / 16:20:35 / 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
  2665
! !
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  2666
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2667
!JavaVM class methodsFor:'debugging support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2668
1145
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2669
disableMonitorTrace
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2670
    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
  2671
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2672
    "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
  2673
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2674
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2675
enableMonitorTrace
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2676
    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
  2677
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2678
    "Created: / 22-11-2011 / 10:29:46 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
  2679
    "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
  2680
!
8728f5373a48 end of the old monitors has come, new monitors plugged in, not yet bugfree I'm sure
hlopkmar
parents: 1142
diff changeset
  2681
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2682
exceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2683
    ^ ExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2684
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2685
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2686
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2688
exceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2689
    ExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2691
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2692
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2693
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2694
exceptionDebugPatterns
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2695
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2696
    ^ ExceptionDebugPatterns
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2697
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2698
    ExceptionDebug must be set in order to ExceptionDebugPatterns work
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2699
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2700
    ExceptionDebug := true.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  2701
    ExceptionDebug := false.
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  2702
    ExceptionDebugPatterns removeAll.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2703
    ExceptionDebugPatterns add: 'java/lang/SecurityException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2704
    ExceptionDebugPatterns add: 'java/net/ConnectException*'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2705
    ExceptionDebugPatterns add: 'java/lang/IllegalArgumentException'.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  2706
    ExceptionDebugPatterns add: 'java/lang/IllegalAccessException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2707
    ExceptionDebugPatterns add: 'java/lang/ClassNotFoundException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2708
    ExceptionDebugPatterns add: 'java/io/IOException'.
1387
4c609318f0e5 - Improvements in GroovyCompiler (error handling)
vranyj1
parents: 1384
diff changeset
  2709
    ExceptionDebugPatterns add: 'java/io/FileNotFoundException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2710
    ExceptionDebugPatterns add: 'java/io/EOFException'.
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2711
    ExceptionDebugPatterns add: 'java/lang/NoSuchMethodException'.
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  2712
    ExceptionDebugPatterns add: 'java/lang/ArrayIndexOutOfBoundsException'.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  2713
    ExceptionDebugPatterns add: 'java/lang/IllegalMonitorStateException'.
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2714
    ExceptionDebugPatterns add: 'org/xml/sax/SAXParseException'.
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2715
    ExceptionDebugPatterns add: 'org/apache/xerces/xni/parser/XMLParseException'.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  2716
    ExceptionDebugPatterns add: 'java/lang/InstantiationException'.
1518
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2717
7fb1f8566436 - JavaVM
vranyj1
parents: 1517
diff changeset
  2718
    ExceptionDebug := true.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  2719
    "
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2720
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2721
    "Created: / 25-02-2011 / 08:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2722
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2723
1544
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2724
!JavaVM class methodsFor:'debugging-dumping'!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2725
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2726
dumpOpenExternalStream: stream on: output
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2727
    output nextPutAll: stream class printString.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2728
    output space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2729
    OpenFileTable notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2730
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2731
        idx := OpenFileTable identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2732
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2733
            output nextPutAll:'JavaVM:OpenFileTable['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2734
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2735
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2736
    ZipCache notNil ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2737
        | idx |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2738
        idx := ZipCache identityIndexOf: stream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2739
        idx ~~ 0 ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2740
            output nextPutAll:'JavaVM:ZipCache['; nextPutAll: idx printString; nextPut:$]; space.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2741
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2742
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2743
    stream isFileStream ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2744
        output nextPutAll: stream pathName ? '?'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2745
    ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2746
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2747
    "Created: / 23-07-2012 / 16:40:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2748
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2749
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2750
dumpOpenExternalStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2751
    ^self dumpOpenExternalStreamsOn: Stdout.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2752
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2753
    "Created: / 23-07-2012 / 16:32:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2754
!
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2755
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2756
dumpOpenExternalStreamsOn: aStream
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2757
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2758
    | nOpenStreams |
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2759
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2760
    nOpenStreams := 0.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2761
    ExternalStream allSubInstancesDo:[:each|
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2762
        each isOpen ifTrue:[
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2763
            nOpenStreams := nOpenStreams + 1.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2764
            self dumpOpenExternalStream: each on: aStream.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2765
            aStream cr.
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2766
        ]
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2767
    ].
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2768
    aStream nextPutLine: 
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2769
        ('SUMMARY: open=%1, java.io=%2, java.util.zip=%3'
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2770
            bindWith: nOpenStreams
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2771
                with: ((OpenFileTable ? #()) inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2772
                with: ((ZipCache ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2773
        )
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2774
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2775
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2776
        JavaVM dumpOpenExternalStreamsOn: Stdout
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2777
    "
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2778
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2779
    "Created: / 23-07-2012 / 16:34:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2780
! !
440d87ed6537 - JavaVM
vranyj1
parents: 1538
diff changeset
  2781
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2782
!JavaVM class methodsFor:'defaults'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2783
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2784
audioEnabled
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2785
    ^ NoAudio not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2787
    "Created: / 18.7.1998 / 22:31:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2788
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2789
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2790
audioEnabled:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2791
    NoAudio := aBoolean not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2793
    "Created: / 18.7.1998 / 22:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2794
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2795
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2796
defaultCLASSPATH
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2797
    |s|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2798
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2799
    s := '' writeStream.
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2800
    Java classPath 
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2801
        do:[:p | s nextPutAll:p asString ]
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2802
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2803
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2804
    ^ s contents
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2806
    "
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  2807
     self defaultCLASSPATH      
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2808
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2809
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2810
    "Created: / 03-01-1998 / 14:27:21 / cg"
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2811
    "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
  2812
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2813
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2814
defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2815
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2816
    ^String streamContents:[:s|
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2817
        Java javaExtDirs do:[:dir|
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2818
            s nextPutAll: dir pathName.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2819
        ] separatedBy:[
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2820
            s nextPut: OperatingSystem pathSeparator.
959
1f3342b2e728 Fixes...
vranyj1
parents: 957
diff changeset
  2821
        ]
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2822
    ]
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2823
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2824
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2825
    JavaVM defaultExtDirs
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2826
    "
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2827
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2828
    "Created: / 31-08-2011 / 20:03:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2829
!
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
  2830
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2831
defaultHotJavaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2832
    ^ '/usr/local/java/hotjava'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2834
    "Modified: / 5.8.1997 / 04:13:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2835
    "Created: / 3.1.1998 / 14:27:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2836
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2837
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2838
defaultJAVAHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2839
    ^ Java javaHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2840
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2841
    "Modified: / 6.8.1997 / 00:54:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2842
    "Created: / 3.1.1998 / 14:27:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2843
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2845
defaultJWSHome
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2846
    '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS' asFilename exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2847
	^ '/phys/idefix/home2/java/JWS2_0/Java-WorkShop2.0/JWS'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2848
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2850
    ^ '/usr/local/java/JWS'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2852
    "Created: / 3.1.1998 / 14:27:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2853
    "Modified: / 3.12.1998 / 14:54:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2854
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2855
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2856
defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2857
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2858
    | dirs |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2859
    dirs := OrderedCollection new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2860
            add: Java release javaHome asFilename / 'lib';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2861
            add: Java release javaHome asFilename / 'lib' / 'amd64';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2862
            add: Java release javaHome asFilename / 'lib' / 'i386';
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2863
            add: Java release javaHome asFilename / 'jre' / 'lib' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2864
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'amd64'  ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2865
            add: Java release javaHome asFilename / 'jre' / 'lib' / 'i386' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2866
            add: Java release javaHome asFilename / 'jre' / 'bin' ;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2867
            yourself.
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2868
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2869
        dirs
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2870
            add: Java release javaHome asFilename / 'bin'.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  2871
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2872
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2873
    ^String streamContents:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2874
        [:path|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2875
        (dirs select:[:d|d exists])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2876
            do:[:d|path nextPutAll:d pathName]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2877
            separatedBy:[path nextPut: OperatingSystem pathSeparator]]
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
        JavaVM defaultJavaLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2881
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2882
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2883
    "Created: / 10-12-2010 / 14:09:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2884
    "Modified: / 01-04-2011 / 18:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2885
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2886
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2887
defaultSunBootLibraryPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2888
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2889
    |s|
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2890
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2891
    s := '' writeStream.
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2892
    Java release classPath 
1562
f63a0fd6a378 Fixes after switching to JavaPathElement
vranyj1
parents: 1553
diff changeset
  2893
        do:[:p | s nextPutAll:p asString]
1251
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2894
        separatedBy: [s nextPut: OperatingSystem pathSeparator].
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2895
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2896
    ^ s contents    
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2897
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2898
    "    
14f94a33376d - system properties polished
vranyj1
parents: 1250
diff changeset
  2899
        JavaVM defaultSunBootLibraryPath
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2900
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2901
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2902
    "Created: / 10-12-2010 / 14:37:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2903
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2904
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2905
defaultWindowingToolKit
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2906
    "/ prefer the windows toolkit ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2907
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2908
    (self classForName: 'sun.awt.windows.WToolkit') notNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2909
        ^ 'sun.awt.windows.WToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2910
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2911
    (Java classForName: 'sun.awt.motif.MToolkit') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2912
        self halt: 'MotifToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2913
        ^ 'sun.awt.motif.MToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2914
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2915
    self halt: 'TinyToolKit: this is untested code'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2916
    ^ 'sun.awt.tiny.TinyToolkit'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2917
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2918
    "/    ^ 'sun.awt.win32.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2919
    "/    ^ 'sun.awt.motif.MToolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2920
    "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  2921
     self defaultWindowingToolKit"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2922
    "Created: / 3.1.1998 / 14:27:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2923
    "Modified: / 27.1.1998 / 21:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2924
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2925
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2926
fileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2927
    ^ FileAccessTrace
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2929
    "Created: / 27.1.1999 / 18:55:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2930
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2932
fileAccessTrace:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2933
    FileAccessTrace := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2934
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2935
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2936
    "Modified: / 27.1.1999 / 18:55:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2937
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2938
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2939
fileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2940
    ^ FileOpenConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2942
    "Created: / 19.10.1998 / 16:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2943
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2944
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2945
fileOpenConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2946
    FileOpenConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2947
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2948
    "Created: / 19.10.1998 / 16:01:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2949
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2951
javaConsole:aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2952
    JavaConsoleStream := aStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2954
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2955
     JavaVM javaConsole:Transcript
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2956
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2958
    "Modified: / 6.8.1997 / 00:34:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2959
    "Created: / 3.1.1998 / 14:27:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2960
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2961
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2962
javaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2963
    ^ JavaConsoleStream
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2965
    "Created: / 3.1.1998 / 14:32:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2966
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2968
nullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2969
    ^ NullPointerExceptionDebug
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2971
    "Created: / 27.1.1999 / 20:14:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2972
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2973
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2974
nullPointerExceptionDebug:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2975
    NullPointerExceptionDebug := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2976
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2977
    "Created: / 27.1.1999 / 20:15:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2978
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2979
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2980
socketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2981
    ^ SocketConnectConfirmation
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2982
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2983
    "Created: / 19.10.1998 / 16:02:15 / cg"
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
socketConnectConfirmation:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2987
    SocketConnectConfirmation := aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2989
    "Created: / 19.10.1998 / 16:02:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2990
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  2991
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2992
!JavaVM class methodsFor:'eager resolving'!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2993
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2994
disableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2995
    EagerResolvingEnabled := false.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2996
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2997
    "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
  2998
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  2999
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3000
eagerResolvingEnabled
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3001
    ^ EagerResolvingEnabled.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3002
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3003
    "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
  3004
!
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3005
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3006
enableEagerResolving
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3007
     EagerResolvingEnabled := true.
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3008
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3009
    "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
  3010
! !
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  3011
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3012
!JavaVM class methodsFor:'fileIO'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3014
addOpenFile:aStream
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3015
    "Given a stream, adds it into the open file table. Returns a
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3016
     (fake) file descriptor number"        
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3017
    | fd |
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3018
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3019
    OpenFileTableLock critical:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3020
        fd := OpenFileTable indexOf: nil.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3021
        fd ~~ 0 ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3022
            OpenFileTable at: fd put: aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3023
            fd := fd - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3024
        ] ifFalse:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3025
            OpenFileTable add:aStream.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3026
            fd := OpenFileTable size - 1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3027
        ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3028
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3029
    ^fd
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3030
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3031
    "Created: / 02-01-1998 / 18:32:59 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  3032
    "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
  3033
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3035
getOpenFileAt:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3036
    ^ OpenFileTable at:idx+1 ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3038
    "Created: / 2.1.1998 / 18:28:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3039
    "Modified: / 2.1.1998 / 18:33:06 / cg"
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
setOpenFile:aStream at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3043
    OpenFileTable size < (idx+1) ifTrue:[
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3044
        OpenFileTable grow:idx+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3045
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3046
    OpenFileTable at:idx+1 put:aStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3047
1109
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3048
"/    Do not shrink OpenFileTable now, make debugging easier
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3049
"/    aStream isNil ifTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3050
"/        [ OpenFileTable last isNil ] whileTrue:[
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3051
"/            OpenFileTable removeLast.            
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3052
"/        ]
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3053
"/    ].
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3054
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3055
    "Modified: / 02-01-1998 / 18:33:21 / cg"
9bd0544f9046 Initial version of finalize() support - may crash VM!
vranyj1
parents: 1108
diff changeset
  3056
    "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
  3057
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3059
!JavaVM class methodsFor:'helpers'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3060
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3061
canCast: s to: t 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3062
    "Helper for _CHECKCAST:_:"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3063
    
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3064
    | sc  tc |
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3065
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3066
    "Not specified in JVM spec, sigh"
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3067
    s isJavaPrimitiveType ifTrue: [
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  3068
        "FIXME"
1263
451695d79afa Few fixes
vranyj1
parents: 1260
diff changeset
  3069
        ^ 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
  3070
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3071
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3072
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3073
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3074
     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
  3075
     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
  3076
     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
  3077
     checkcast determines whether objectref can be cast to type T as follows:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3078
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3079
     - If S is an ordinary (nonarray) class, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3080
     - 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
  3081
     of T.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3082
     - 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
  3083
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3084
    (s isJavaArrayClass not and: [ s isInterface not ]) ifTrue: [
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3085
        ^ (s includesBehavior: t).
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3086
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3087
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3088
     - If S is an interface type, then:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3089
     - 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
  3090
     - 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
  3091
     superinterface of S.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3092
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3093
    s isInterface ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3094
        ^ t isInterface not 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3095
            ifTrue: [ t == (self classForName: 'java.lang.Object') ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3096
            ifFalse: [ s includesBehavior: t ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3097
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3098
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3099
     - 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
  3100
     ponents of type SC , then:
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3101
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3102
    self assert: s isJavaArrayClass description: 'S should be array type'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3103
    sc := s javaComponentClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3104
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3105
     - 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
  3106
    "
1384
d62dd4b29c22 Fixes in INSTANCE_OF + added missing method. SAXON-B now works again
vranyj1
parents: 1382
diff changeset
  3107
    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
  3108
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3109
     - 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
  3110
     then one of the following must be true:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3111
     - TC and SC are the same primitive type.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3112
     - 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
  3113
     recursive application of these rules.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3114
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3115
    t isJavaArrayClass ifTrue: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3116
        tc := t javaComponentClass.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3117
        ^ tc isJavaPrimitiveType 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3118
            ifTrue: [ tc == sc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3119
            ifFalse: [ self canCast: sc to: tc ]
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3120
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3121
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3122
     - 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
  3123
     by arrays (JLS3 4.10.3).
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3124
    "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3125
    ((t name == #'java/lang/Cloneable') 
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3126
        or: [ t name == #'java/lang/Serializable' ]) ifTrue: [ ^ true ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3127
    ^ false
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3129
    "Modified: / 09-01-1999 / 00:45:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3130
    "Created: / 11-02-2011 / 08:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3131
    "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
  3132
    "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
  3133
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3134
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3135
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
  3136
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3137
    "Common helper for invoking methods and ctors. Performs
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3138
     (type) checks and unboxing. Return (possibly boxed) return value."
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3139
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3140
    | method parameterTypes bargs bargss retval retcls bi executionEx |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3141
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3142
    method := self reflection methodForJavaConstructorObject: jmethod.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3143
    parameterTypes := jmethod instVarNamed: #parameterTypes.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3144
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3145
    (obj isNil and:[method isStatic not]) ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3146
        self throwNullPointerException.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3147
        ^nil.            
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3148
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3149
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3150
    "Possibly box/unbox arguments"
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3151
    args notEmptyOrNil ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3152
        bargs := Array new: (bargss := method numArgs).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3153
        bi := 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3154
        1 to: args size do:[:i|
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3155
            | cls |
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3156
            bi > bargss ifTrue:[
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3157
"/                self breakPoint: #jv.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3158
                self throwIllegalArgumentException: 'passed more arguments than expected'.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3159
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3160
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3161
            cls := self classForJavaClassObject: (parameterTypes at: i).
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3162
            cls isJavaPrimitiveType ifTrue:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3163
                bargs at: bi put: (cls javaUnbox: (args at:i) onError:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3164
"/                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3165
                    self throwIllegalArgumentException:'illegal unbox'. ^nil
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3166
                ]).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3167
                (cls == LargeInteger or:[cls == Float]) ifTrue:[bi := bi + 1].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3168
            ] ifFalse:[
1222
4ac0b70ff26a JavaVM: yet another fix in reflection (java null/type checks, sigh)
vranyj1
parents: 1221
diff changeset
  3169
                ((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
  3170
                    self breakPoint: #jv.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3171
                    self throwIllegalArgumentException:'incomplatible argument types'. ^nil.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3172
                ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3173
                bargs at: bi put: (args at:i).
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3174
            ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3175
            bi := bi + 1.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3176
       ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3177
        bi <= bargss ifTrue:[
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3178
"/             self breakPoint: #jv.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  3179
             self throwExceptionClassName: 'java.lang.reflect.InvocationTargetException'
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3180
                              withMessage: 'not enough arguments'
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3181
        ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3182
    ] ifFalse:[
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3183
        bargs := #()
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3184
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3185
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3186
    "Check number of arguments"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3187
    method numArgs ~= bargs size ifTrue:[
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3188
        self throwIllegalArgumentException:'Invalid number of arguments'.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3189
        ^nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3190
    ].
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3191
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3192
    "Lookup the method here - hack, because of those stupid package private methods"
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3193
    method isStatic not ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3194
        method := JavaLookup instance
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3195
                    lookupMethodForSelector: method selector 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3196
                                 directedTo: obj class 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3197
                                        for: obj 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3198
                              withArguments: bargs 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3199
                                       from: context 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3200
                                        ilc: nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3201
        method isNil ifTrue:[
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3202
            self throwIllegalArgumentException:'Message not understood - invalid class for ''this'''. 
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3203
            ^nil.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3204
        ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3205
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3206
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3207
    "Fire the method"
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3208
    [
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3209
        method isStatic ifTrue:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3210
            retval := method valueWithReceiver: method javaClass arguments: bargs.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
  3211
        ] ifFalse:[
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3212
            retval := method valueWithReceiver: obj arguments: bargs.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3213
        ].
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3214
    ] on: (self classForName:'java.lang.Throwable') do:[:ex |
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3215
        executionEx := ex.
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3216
    ].
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3217
    executionEx notNil ifTrue:[
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  3218
        self throwInvocationTargetException: 'An exception occured during invocation' target: executionEx.
1508
ede3a3720ec6 - JavaLookup
vranyj1
parents: 1507
diff changeset
  3219
        ^nil.
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3220
    ].
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3221
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
  3222
    isConstructor ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3223
        retcls := jmethod instVarNamed: #returnType.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3224
        retcls notNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3225
            retcls := self classForJavaClassObject: retcls.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3226
            retcls ~~ UndefinedObject ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3227
                retval := retcls javaBox: retval.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3228
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3229
        ].
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3230
    ].
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3231
    ^retval.
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3232
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  3233
    "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
  3234
!
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
  3235
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3236
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3237
    self breakPoint:#mh info:'refactor my sender to use reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3238
    ^ self reflection javaStringObjectForString:string interned:false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3240
    "Created: / 22-11-2010 / 16:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3241
    "Modified: / 09-02-2011 / 00:47:49 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3242
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3244
javaStringObjectForString:string interned:intern 
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
  3245
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3246
    ^self reflection javaStringObjectForString:string interned:intern.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3247
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3248
    "Created: / 22-11-2010 / 16:28:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3249
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3250
    "Modified: / 09-02-2011 / 01:04:21 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3251
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3252
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3253
javaThreadForSTProcess: stProcess 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3254
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3255
    result := Java threadForStProcess: stProcess ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3256
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3257
    ^ result.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3258
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3259
    "Modified: / 26-08-1997 / 19:56:31 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3260
    "Created: / 03-01-1998 / 01:53:41 / cg"
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3261
    "Modified: / 09-12-2011 / 13:12:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3262
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3263
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3264
makeArrayOf: loadedJavaClass asDescribedBy: className 
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3265
    | arrayClass  dimensions |
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3266
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3267
    arrayClass := loadedJavaClass.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3268
    dimensions := className occurrencesOf: $[.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3269
        arrayClass isJavaArrayClass ifTrue: [
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3270
        "is already array (primitive arrays case, like ByteArray etc)"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3271
        dimensions := dimensions - 1.
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3272
    ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3273
    dimensions timesRepeat: [ arrayClass := arrayClass javaArrayClass. ].
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3274
        ^ arrayClass.
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3275
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3276
    "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
  3277
    "Modified (format): / 23-10-2011 / 22:30:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3278
!
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  3279
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3280
newThread: name 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3281
    | thread  threadClass  i |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3282
    threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3283
    thread := threadClass basicNew.
1533
ad8b4acdadc1 - JavaVM
vranyj1
parents: 1531
diff changeset
  3284
    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
  3285
    thread instVarNamed: 'priority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3286
        put: (threadClass instVarNamed: 'NORM_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3287
    thread instVarNamed: 'single_step' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3288
    thread instVarNamed: 'daemon' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3289
    thread instVarNamed: 'stillborn' put: 0.
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3290
    thread instVarNamed: 'threadStatus' put: 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3291
    thread instVarNamed: 'target' put: nil.
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3292
    thread instVarNamed: 'blockerLock'
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  3293
        put: (JavaVM classForName: 'java.lang.Object') basicNew.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3294
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3295
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3296
    "/ that on was only temporarily present in JDK1.1.3 (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3297
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3298
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3299
    (i := thread class instVarOffsetOf: 'initial_stack_memory') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3300
        thread instVarAt: i put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3301
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3302
    thread instVarNamed: 'group' put: (self standardThreadGroup).
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3303
    threadClass classLoader isNil ifTrue: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3304
        thread instVarNamed: 'contextClassLoader' put: self systemClassLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3305
    ] ifFalse: [
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3306
        thread instVarNamed: 'contextClassLoader' put: threadClass classLoader
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3307
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3308
    ^ thread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3309
1151
vranyj1
parents: 1150
diff changeset
  3310
    "Created: / 03-01-1998 / 01:47:30 / cg"
vranyj1
parents: 1150
diff changeset
  3311
    "Modified: / 27-01-1998 / 00:54:33 / cg"
1200
c2d29943be5a java thread status is now set
hlopkmar
parents: 1196
diff changeset
  3312
    "Modified: / 01-12-2011 / 17:43:38 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1533
ad8b4acdadc1 - JavaVM
vranyj1
parents: 1531
diff changeset
  3313
    "Modified: / 20-07-2012 / 00:47:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3314
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3315
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3316
stProcessForJavaThread: jThread 
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3317
    | result |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3318
    result := Java threadsAt: jThread ifAbsent: nil.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3319
    result == 0 ifTrue: [ self breakPoint: #mh. ^ nil ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3320
    ^ result.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3321
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3322
    "Created: / 02-01-1998 / 21:48:27 / cg"
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3323
    "Modified: / 03-01-1998 / 01:53:55 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  3324
    "Modified: / 09-12-2011 / 13:12:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3325
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3327
standardThreadGroup
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3328
    | standardGroup  threadClass |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3329
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3330
    StandardThreadGroup isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3331
        threadClass := JavaVM classForName: 'java.lang.Thread'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3332
        standardGroup := (self classForName: 'java.lang.ThreadGroup') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3333
        standardGroup instVarNamed: 'parent' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3334
        standardGroup instVarNamed: 'name' put: (Java as_String: 'main').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3335
        standardGroup instVarNamed: 'maxPriority'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3336
            put: (threadClass instVarNamed: 'MAX_PRIORITY').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3337
        standardGroup instVarNamed: 'destroyed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3338
        standardGroup instVarNamed: 'daemon' put: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3339
        (standardGroup class instVarOffsetOf: 'vmAllowSuspension') notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3340
            standardGroup instVarNamed: 'vmAllowSuspension' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3341
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3342
        standardGroup instVarNamed: 'nthreads' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3343
        standardGroup instVarNamed: 'ngroups' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3344
        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
  3345
        StandardThreadGroup := standardGroup.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3346
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3347
    ^ StandardThreadGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3348
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3349
    "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
  3350
    "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
  3351
    "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
  3352
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3354
!JavaVM class methodsFor:'helpers - awt'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3356
commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3357
    |view x y width height ext menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3359
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3361
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3362
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3363
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3364
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3365
    ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3367
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3368
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3369
"/    ' extent: ' print. ext printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3370
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3371
	view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3372
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3373
	(view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3374
	or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3375
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3376
	    "/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3377
	    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3378
	    menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3379
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3380
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3381
		height := height + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3382
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3383
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3384
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3385
	    "/ to prevent a view from not being visible/closable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3386
	    "/ in case Java goes mad ..
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3388
	    (width < 30
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3389
	    or:[height < 10]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3390
		"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3391
		width := 30.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3392
		height := 20.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3393
		ext := width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3394
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3396
	    view extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3397
	    (view isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3398
		view preferredExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3399
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3401
	    "/ adjust non-resizable views min/max
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3403
	    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3404
		view minExtent notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3405
		    view minExtent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3406
		    view maxExtent:ext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3407
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3408
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3409
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3410
	    (view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3411
	    and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3412
		menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3413
		menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3414
		    "/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3415
		    y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3416
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3417
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3418
		"/ post a configuration event
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3419
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3420
		    'JAVA: configure: need event' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3421
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3422
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3423
	    (x isNil or:[y isNil]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3424
		Transcript showCR:'bad args to reshape'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3425
	    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3426
		view origin:x@y extent:ext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3427
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3428
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3429
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3431
    view isJavaView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3432
	view invalidate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3433
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3434
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3435
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3436
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3437
    "Created: / 4.1.1998 / 18:00:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3438
    "Modified: / 5.12.1998 / 13:34:20 / cg"
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
createdWindowsView:aView for:aJavaPeer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3442
    "this is only sent with the sun.awt.windows toolkit"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3443
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3444
    aJavaPeer instVarNamed:'pData' put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3446
    JavaWindowGroup isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3447
	JavaWindowGroup := WindowGroup new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3448
	JavaWindowGroup isForModalSubview:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3449
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3450
    aView windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3451
    JavaWindowGroup addView:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3453
    KnownWindows isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3454
	KnownWindows := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3455
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3456
    KnownWindows at:aJavaPeer put:aView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3457
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3458
    FirstWindowCreationSemaphore signalIf.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3459
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3460
"/'*** ' print. aJavaPeer print. ' -> ' print. aView printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3461
"/(aView isKindOf:ModalBox) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3462
"/    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3463
"/].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3464
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3465
    "Created: / 4.1.1998 / 17:57:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3466
    "Modified: / 28.1.1998 / 22:40:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3467
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3468
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3469
gcForWGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3470
    |jGraphics gc orgX orgY trans tX tY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3472
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3473
    O_WGgraphics_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3474
	O_WGgraphics_pData := (jGraphics class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3475
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3476
    O_WGgraphics_originX isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3477
	O_WGgraphics_originX := (jGraphics class instVarOffsetOf:'originX').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3478
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3479
    O_WGgraphics_originY isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3480
	O_WGgraphics_originY := (jGraphics class instVarOffsetOf:'originY').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3481
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3482
    gc := jGraphics instVarAt:O_WGgraphics_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3483
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3484
    trans := gc translation.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3485
    tX := trans x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3486
    tY := trans y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3487
"/    tX := gc translationX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3488
"/    tY := gc translationY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3490
    orgX := jGraphics instVarAt:O_WGgraphics_originX.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3491
    orgY := jGraphics instVarAt:O_WGgraphics_originY.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3492
    ((orgX ~~ tX) or:[orgY ~~ tY]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3493
	gc translation:orgX@orgY
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3494
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3495
    ^ gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3497
    "Created: / 8.1.1998 / 00:16:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3498
    "Modified: / 23.12.1998 / 20:27:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3499
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3500
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3501
jPeerForView:aView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3502
    ^ KnownWindows keyAtValue:aView ifAbsent:nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3504
    "Created: / 15.1.1998 / 13:48:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3505
    "Modified: / 15.1.1998 / 13:48:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3506
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3508
pReshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3509
    |jFramePeer view x y width height menu|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3511
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3512
    view := jFramePeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3513
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3514
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3515
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3516
    width := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3517
    height := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3519
"/    'pReshape ' print. view print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3520
"/    ' ' print. x print. '/' print. y print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3521
"/    ' extent: ' print. width print. '/' print. height printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3522
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3523
    view isPopUpView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3524
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3525
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3526
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3527
    (view isTopView 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3528
    or:[view isMemberOf:JavaEmbeddedFrameView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3529
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3530
	"/ dont allow setting the origin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3531
	"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3532
	menu := self topViewsMenu:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3533
	menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3534
	    "/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3535
	    height := height + menu height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3536
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3537
	view extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3538
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3539
	(view superView notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3540
	and:[view superView isTopView]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3541
	    menu := self topViewsMenu:view superView.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3542
	    menu notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3543
		"/ must add menus height to yPos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3544
		y := y + menu height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3545
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3546
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3547
	view origin:x@y extent:width@height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3548
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3550
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3552
    "Created: / 7.1.1998 / 21:47:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3553
    "Modified: / 5.12.1998 / 13:47:52 / 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
replacementFontFor:name style:styleNr size:size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3557
    |font family style|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3558
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3559
    style := 'roman'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3560
    styleNr = 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3561
        style := 'roman'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3562
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3564
    font := Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3565
    font notNil ifTrue:[^ font].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3566
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3567
    name = 'Dialog' ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3568
        family := 'helvetica'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3569
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3570
        family := 'courier'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3571
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3572
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3573
    ^ Font family:name style:style size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3574
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3576
topViewsMenu:view
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3577
    |idx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3579
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3580
	view subViews size > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3581
	    (idx := view subViews findFirst:[:v | v isMemberOf:MenuPanel]) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3582
		"/ must add the menus height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3583
		^ view subViews at:idx
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3584
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3585
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3586
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3587
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3589
    "Modified: / 4.8.1997 / 01:23:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3590
    "Created: / 4.1.1998 / 18:01:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3591
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3593
viewForWPeer:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3594
    |jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3595
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3596
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3597
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3598
    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3599
    O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3600
	O_FramePeer_pNativeWidget := (jPeer class instVarOffsetOf:'pNativeWidget').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3601
	O_FramePeer_pNativeWidget isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3602
	    O_FramePeer_pNativeWidget := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3603
	    O_FramePeer_pData isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3604
		O_FramePeer_pData := (jPeer class instVarOffsetOf:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3605
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3606
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3607
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3608
    O_FramePeer_pNativeWidget > 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3609
	"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3610
	^ jPeer instVarAt:O_FramePeer_pNativeWidget.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3611
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3612
    ^ jPeer instVarAt:O_FramePeer_pData.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3613
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3614
    "Modified: / 19.11.1998 / 01:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3615
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3617
!JavaVM class methodsFor:'helpers - exceptions'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3618
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3619
throwAbstractMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3620
    ^ 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
  3621
        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
  3622
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3623
    "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
  3624
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3625
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3626
throwArrayIndexOutOfBoundsException: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3627
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3628
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3629
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3630
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3631
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3633
    "Created: / 14.1.1998 / 21:36:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3634
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3635
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3636
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3637
throwArrayIndexOutOfBoundsException: theArray _: badIndex 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3638
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3639
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3640
    exClass := self classForName: 'java.lang.ArrayIndexOutOfBoundsException'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3641
    ex := exClass newWith_int: badIndex.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3642
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3644
    "Modified: / 20.11.1998 / 13:27:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3645
    "Created: / 8.1.1999 / 15:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3648
throwArrayStoreException:badArray
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3649
    ^ self
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3650
        throwExceptionClassName:'java.lang.ArrayStoreException'
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3651
         withMessage:('bad array store: ' , badArray class printString)
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3652
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  3653
    "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
  3654
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3656
throwClassCastException
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3657
1169
8f727dc66647 monitor fix.. many to come :)
hlopkmar
parents: 1159
diff changeset
  3658
    
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3659
    ^ self throwExceptionClassName: 'java.lang.ClassCastException'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  3660
        withMessage: 'cast failed'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3661
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3662
    "Modified: / 07-01-1998 / 15:25:35 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3663
    "Created: / 08-01-1999 / 18:55:31 / cg"
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  3664
    "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
  3665
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3666
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3667
throwClassFormatError
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3668
    ^ self throwClassFormatError: 'Invalid class format'
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3669
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3670
    "Created: / 04-01-1998 / 22:26:09 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3671
    "Modified: / 10-11-1998 / 13:20:31 / cg"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3672
    "Created: / 08-08-2011 / 17:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3673
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  3674
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3675
throwClassFormatError: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3676
    ^ self 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3677
        throwExceptionClassName:'java.lang.ClassFormatError' 
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3678
        withMessage: message
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3679
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3680
    "Created: / 04-01-1998 / 22:26:09 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3681
    "Modified: / 10-11-1998 / 13:20:31 / cg"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3682
    "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
  3683
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  3684
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3685
throwClassNotFoundException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3686
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3687
	throwExceptionClassName:'java.lang.ClassNotFoundException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3688
	withMessage:'no such class'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3689
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3690
    "Created: / 4.1.1998 / 22:25:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3691
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3692
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3693
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3694
throwClassNotFoundException: className 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3695
    ^ self throwExceptionClassName: 'java.lang.ClassNotFoundException'
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  3696
        withMessage: 'no such class: ' , className
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3697
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3698
    "Created: / 4.1.1998 / 22:26:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3699
    "Modified: / 10.11.1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3701
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3702
throwDataFormatException: message
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3703
    ^ self 
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3704
        throwExceptionClassName:'java.util.zip.DataFormatException' 
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3705
        withMessage: message
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3706
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3707
    "Created: / 16-08-2012 / 17:55:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3708
!
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  3709
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3710
throwDivisionByZeroException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3711
    DivisionByZeroExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3712
	self halt:'division by zero'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3713
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3714
    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3715
	throwExceptionClassName:'java.lang.ArithmeticException'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3716
	withMessage:'division by zero'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3717
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3718
    "Created: / 8.1.1999 / 14:28:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3719
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3720
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3721
throwException: aJavaException 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3722
    <resource: #skipInDebuggersWalkBack>
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3723
    | 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
  3724
    ExceptionTrace ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3725
        | tmpMessage |
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3726
        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
  3727
        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
  3728
            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
  3729
        ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3730
        Logger 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3731
            log: 'JAVA: exception: ' , 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
  3732
                    , tmpMessage , ')'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3733
            severity: #debug
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3734
            facility: 'JVM'
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3735
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3736
    ExceptionDebug ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3737
        "/        self internalError:('JAVA: exception: ' , 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
  3738
        (ExceptionDebugPatterns isNilOrEmptyCollection 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3739
            or: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3740
                ExceptionDebugPatterns 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3741
                    anySatisfy: [:pattern | pattern match: 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
  3742
            ]) 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3743
                ifTrue: [
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3744
                    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
  3745
                ]
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3746
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3747
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3748
    "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3749
    "/ search stack for a javaContext which handles that exception
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3750
    "/
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3751
    
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3752
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3753
    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
  3754
    [ 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
  3755
        (srchCon isJavaContext) ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3756
            method := srchCon method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3757
            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
  3758
            (hPC := method handlerFor: aJavaException at: pc) notNil ifTrue: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3759
                handlerPC := hPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3760
                handlerContext := srchCon
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3761
            ].
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3762
        ] ifFalse:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3763
            srchCon isHandleContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3764
                handler := srchCon receiver 
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3765
                    handlerForSignal: aJavaException class context: srchCon originator:thisContext sender.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3766
                handler notNil ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3767
                    "We have found a Smalltalk handler for Java exception here"
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3768
                    handlerContext := srchCon.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3769
                ]
1098
vranyj1
parents: 1097
diff changeset
  3770
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3771
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3772
        srchCon := srchCon sender.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3773
    ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3774
    handlerContext isNil ifTrue: [
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3775
        "/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3776
        "/ no JavaHandler ... let smalltalk handle it
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3777
        "/                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3778
        exClass := aJavaException class.
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3779
        exClass == (self classNamed: 'java/lang/ThreadDeath') ifTrue: [
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3780
            "/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
  3781
            ^ self
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3782
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3783
        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
  3784
        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
  3785
        jMsg notNil ifTrue: [ msg := msg , ': ' , (Java as_ST_String: jMsg). ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3786
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3787
        "/ for our convenience: skip ST contexts 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3788
        "/ (i.e. the handler or debugger will see the javaContext first )
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3789
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3790
        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
  3791
        [ 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
  3792
        con isNil ifTrue: [ con := thisContext sender ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3793
        JavaUnhandledExceptionError 
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3794
            raiseWith: aJavaException
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3795
            errorString: msg
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3796
            in: con.
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3797
    ] ifFalse: [
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3798
        handlerContext isJavaContext ifTrue:[
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3799
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3800
            "/ found a Java exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3801
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3802
            handlerContext setPC: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3803
            handlerContext exceptionArg: aJavaException pc: handlerPC.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3804
            handlerContext markForException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3805
            handlerContext unwindAndRestartForJavaException.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3806
            self halt: 'should not be reached'.
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3807
        ] ifFalse:[
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3808
            | val |    
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3809
            "/
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3810
            "/ found a Smalltalk exception handler
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3811
            "/
1428
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3812
            "/ First, call evaluate the handler (see GenericException>>doCallHandler:
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3813
            val := handler valueWithOptionalArgument: aJavaException.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3814
            "handler fall through - is just like a #return:(aHandlerBlock value)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3815
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3816
            "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
  3817
            rejected (rethrown) - this is not supported yet - we need
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3818
            to somehow indicate that (kind of reject token object returned
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3819
            from handler?)"
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3820
            thisContext evaluateUnwindActionsUpTo:handlerContext.
902a1435f4ca Initial support for handling Java exceptions in Smalltalk
vranyj1
parents: 1427
diff changeset
  3821
            handlerContext return: val.
1427
13f3765a9bba Some experiments with Exceptions, not that easy :-)
vranyj1
parents: 1387
diff changeset
  3822
        ].
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3823
    ].
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3824
    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
  3825
    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3826
    Processor activeProcess terminate.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3827
1075
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3828
    "
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3829
     ExceptionTrace := true"
927aeb3649fc Fix in native method imp -> class loading java tests all pass.. I'm getting drunk tonight :)
hlopkmar
parents: 1073
diff changeset
  3830
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3831
    "Created: / 07-01-1998 / 15:28:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3832
    "Modified: / 24-12-1999 / 02:33:25 / cg"
1201
326987885b9b one step closer to mauve thread stop test
hlopkmar
parents: 1200
diff changeset
  3833
    "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
  3834
    "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
  3835
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3836
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3837
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3838
    | exClass  ex |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3839
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  3840
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3841
    ex := exClass newWith_String: someMessage.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  3842
    ^ self throwException: ex
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3843
1060
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3844
    "Created: / 07-01-1998 / 15:25:09 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3845
    "Modified: / 14-01-1998 / 23:38:30 / cg"
c3ac98001802 Yet another set of hacks for classloaders
vranyj1
parents: 1059
diff changeset
  3846
    "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
  3847
    "Modified: / 02-11-2011 / 16:54:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3848
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3849
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3850
throwExceptionClassName: aJavaExceptionClassName withMessage: someMessage cause: cause 
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3851
    | exClass  ex |
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3852
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3853
    exClass := self classForName: aJavaExceptionClassName asSlashedJavaClassName definedBy: nil.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3854
    ex := exClass newWith_String: someMessage.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3855
    ex instVarNamed: #cause put: cause.
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3856
    ^ self throwException: ex
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3857
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3858
    "Created: / 05-07-2012 / 09:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3859
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  3860
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3861
throwExceptionForFinallyIn: context
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3862
    "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
  3863
     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
  3864
     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
  3865
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3866
    |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
  3867
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3868
    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
  3869
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3870
    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
  3871
    pc := context pc.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3872
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3873
    token := JavaContext::FinallyToken new.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3874
    returnContext := thisContext sender sender sender.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3875
    returnContext selector == #return: ifTrue:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3876
        token 
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3877
            context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3878
            selector: #return:;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3879
            exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3880
            value: (returnContext argAt:1).
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3881
    ] ifFalse:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3882
        returnContext selector == #return ifTrue:[
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3883
            token 
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3884
                context: context;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3885
                selector: #return;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3886
                exception: returnContext receiver;
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3887
                value: nil.
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3888
        ] ifFalse:[    
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3889
            self error:'Unhandled case, inform libjava developers (JV in particular)' .
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3890
        ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3891
    ].
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3892
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
  3893
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3894
    handlerPC := method handlerFor: token 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
  3895
    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
  3896
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3897
    context setPC: handlerPC.
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
  3898
    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
  3899
    context markForException.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3900
    context restart.
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3901
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3902
    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
  3903
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3904
    "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
  3905
!
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
  3906
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3907
throwExceptionInInitializerError:className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3908
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3909
        throwExceptionClassName:'java.lang.ExceptionInInitializerError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3910
        withMessage:'error when initializing class: ' , className
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3911
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3912
    "Created: / 24-11-2010 / 09:23:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3913
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3914
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3915
throwFileNotFoundException: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3916
    ^ self 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3917
        throwExceptionClassName:'java.io.FileNotFoundException' 
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3918
        withMessage: message
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3919
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3920
    "Created: / 04-01-1998 / 22:26:09 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3921
    "Modified: / 10-11-1998 / 13:20:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3922
    "Created: / 10-08-2011 / 14:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3923
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  3924
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3925
throwIOExceptionWithMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3926
    IOExceptionDebug == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3927
	self halt:'IO Exception'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3928
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3929
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3930
	throwExceptionClassName:'java.io.IOException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3931
	withMessage:message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3932
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3933
    "Created: / 7.1.1998 / 10:34:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3934
    "Modified: / 7.1.1998 / 15:26:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3935
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3936
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3937
throwIllegalAccessError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3938
    ^ 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
  3939
        withMessage: 'illegal access'
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3940
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3941
    "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
  3942
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3943
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3944
throwIllegalAccessException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3945
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3946
	throwExceptionClassName:'java.lang.IllegalAccessException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3947
	withMessage:'illegal access'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3948
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3949
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3950
    "Created: / 14.1.1998 / 23:13:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3951
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3952
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3953
throwIllegalArgumentException: message
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3954
    ^ self 
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3955
        throwExceptionClassName:'java.lang.IllegalArgumentException' 
1151
vranyj1
parents: 1150
diff changeset
  3956
        withMessage: 'illegal argument: ', message
985
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3957
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3958
    "Modified: / 07-01-1998 / 15:25:35 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3959
    "Created: / 14-01-1998 / 23:13:44 / cg"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3960
    "Created: / 07-09-2011 / 14:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3961
!
8d63abcb4308 Few fixes...
vranyj1
parents: 981
diff changeset
  3962
1177
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3963
throwIllegalMonitorStateException: message 
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3964
    self throwExceptionClassName: 'java.lang.IllegalMonitorStateException'
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3965
            withMessage: message.
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3966
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3967
    "Created: / 29-11-2011 / 14:21:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3968
!
c41be1c0ed55 monitor fixes
hlopkmar
parents: 1175
diff changeset
  3969
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3970
throwIncompatibleClassChangeError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3971
        ^ 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
  3972
                withMessage: 'illegal change'.
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3973
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3974
    "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
  3975
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  3976
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3977
throwInstantiationException
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3978
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3979
	throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3980
	withMessage:'cannot instantiate'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3982
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3983
    "Created: / 14.1.1998 / 23:15:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3984
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3986
throwInstantiationExceptionFor:aJavaClass
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3987
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3988
        throwExceptionClassName:'java.lang.InstantiationException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3989
        withMessage:('cannot instantiate: ' , aJavaClass javaName)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3990
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3991
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3992
    "Created: / 14.1.1998 / 23:17:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3993
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  3994
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3995
throwInterruptedException: message 
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3996
    ^ self throwExceptionClassName: 'java.lang.InterruptedException'
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3997
        withMessage:message
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3998
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  3999
    "Created: / 30-11-2011 / 12:23:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4000
!
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  4001
1509
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4002
throwInvocationTargetException: message target: target
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4003
    | exClass  ex |
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4004
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4005
    exClass := self classForName: #'java/lang/reflect/InvocationTargetException' definedBy: nil.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4006
    ex := exClass newWith_String: message.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4007
    ex instVarNamed: #target put: target.
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4008
    ^ self throwException: ex
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4009
366449596854 - stx_libjava
vranyj1
parents: 1508
diff changeset
  4010
    "Created: / 05-07-2012 / 17:48:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1507
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4011
!
87cb86c7b75c - JavaVM
vranyj1
parents: 1505
diff changeset
  4012
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4013
throwLinkageError: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4014
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4015
        throwExceptionClassName:'java.lang.LinkageError' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4016
        withMessage: message
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4018
    "Modified: / 10-11-1998 / 13:20:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4019
    "Created: / 26-11-2010 / 11:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4020
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4021
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4022
throwNegativeArraySizeException: size
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4023
    ^ self 
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4024
        throwExceptionClassName: 'java.lang.NegativeArraySizeException'
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4025
        withMessage: 'negative array size: ' , size printString
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4026
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4027
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4028
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
  4029
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4030
throwNoSuchFieldException
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4031
  ^ 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
  4032
        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
  4033
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4034
    "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
  4035
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4036
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4037
throwNoSuchMethodError
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4038
      ^ 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
  4039
              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
  4040
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4041
    "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
  4042
!
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
  4043
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4044
throwNullPointerException
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4045
    NullPointerExceptionDebug == true ifTrue:[
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4046
        self halt:'Null Pointer exception'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4047
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4049
    ^ self 
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4050
        throwExceptionClassName:'java.lang.NullPointerException' 
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4051
        withMessage:'null pointer'
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4052
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4053
    "Created: / 09-01-1998 / 02:26:08 / cg"
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  4054
    "Modified: / 28-01-1998 / 02:30:09 / cg"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  4055
    "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
  4056
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4057
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4058
throwNullPointerException:message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4059
    NullPointerExceptionDebug == true ifTrue: [
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4060
        self halt: 'Null Pointer exception'.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4061
    ].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4062
    ^ self throwExceptionClassName: 'java.lang.NullPointerException'
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4063
        withMessage: message
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4064
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4065
    "Created: / 09-01-1998 / 02:26:08 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4066
    "Modified: / 28-01-1998 / 02:30:09 / cg"
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4067
    "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
  4068
    "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
  4069
!
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  4070
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4071
throwNumberFormatException 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4072
    ^ self 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4073
	throwExceptionClassName:'java.lang.NumberFormatException' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4074
	withMessage:'bad number format'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4076
    "Modified: / 7.1.1998 / 15:25:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4077
    "Created: / 11.1.1998 / 16:08:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4079
943
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4080
throwOutOfMemoryError
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4081
    ^ self 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4082
        throwExceptionClassName:'java.lang.OutOfMemoryError' 
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4083
        withMessage:'Oops, out of memory!!'
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4084
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4085
    "Created: / 04-01-1998 / 22:26:09 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4086
    "Modified: / 10-11-1998 / 13:20:31 / cg"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4087
    "Created: / 30-08-2011 / 09:23:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4088
!
35fe635719f9 JavaZipSupport refactoring
vranyj1
parents: 942
diff changeset
  4089
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4090
throwSecurityException
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4091
    JavaClassReader classLoaderQuerySignal 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4092
        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
  4093
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4094
            ^ 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
  4095
                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
  4096
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4097
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4098
    "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
  4099
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4100
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4101
throwSecurityExceptionWith: message 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4102
    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
  4103
        do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4104
            ^ 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
  4105
                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
  4106
        ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4107
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4108
    "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
  4109
!
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  4110
1084
vranyj1
parents: 1083
diff changeset
  4111
throwSocketException: message 
vranyj1
parents: 1083
diff changeset
  4112
    JavaClassReader classLoaderQuerySignal answer: nil
vranyj1
parents: 1083
diff changeset
  4113
        do: [
vranyj1
parents: 1083
diff changeset
  4114
            ^ self throwExceptionClassName: 'java.net.SocketException'
vranyj1
parents: 1083
diff changeset
  4115
                withMessage: message
vranyj1
parents: 1083
diff changeset
  4116
        ].
vranyj1
parents: 1083
diff changeset
  4117
vranyj1
parents: 1083
diff changeset
  4118
    "Created: / 01-11-2011 / 16:28:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4119
    "Created: / 03-11-2011 / 23:31:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1083
diff changeset
  4120
!
vranyj1
parents: 1083
diff changeset
  4121
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4122
throwZipException
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4123
    ^ self throwZipException:'error in opening zip file'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4124
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4125
    "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
  4126
    "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
  4127
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4128
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4129
throwZipException: message
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4130
    ^ 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
  4131
           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
  4132
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  4133
    "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
  4134
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4136
!JavaVM class methodsFor:'helpers - io'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4138
anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4139
    |jStream fileNo file|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4140
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4141
    jStream := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4142
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4143
    file := self validateFile:jStream.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4144
    file == Stdin ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4145
        file := StdinReplacementFileQuerySignal raiseRequest.
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4146
        file isNil ifTrue:[
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4147
            file := Stdin
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4148
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4149
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4151
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4153
    (file ~~ Stdin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4154
    and:[file ~~ Stdout
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4155
    and:[file ~~ Stderr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4156
    and:[file ~~ Transcript]]]) ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4157
        file close.
1238
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4158
    ] ifFalse:[
c7cddd513da6 Few fixes for Tomcat
vranyj1
parents: 1222
diff changeset
  4159
        self breakPoint: #jv.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4160
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4161
    self setOpenFile:nil at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4162
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4163
    fileNo := jStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4164
    fileNo isInteger ifFalse:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4165
        "/ JDK 1.1.3
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4166
        fileNo instVarNamed:'fd' put:0.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4167
    ] ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4168
        "/ JDK 1.0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4169
        jStream instVarNamed:'fd' put:0
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4170
    ].
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4171
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4172
    "Created: / 04-02-1998 / 15:22:03 / cg"
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4173
    "Modified: / 14-10-1998 / 15:10:07 / cg"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4174
    "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
  4175
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4176
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4177
anyStream_readBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4178
    |bytes offset count stream nRead|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4179
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4180
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4181
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4182
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4184
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4186
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4187
    bytes class isBytes ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4188
        self halt.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4189
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4190
    stream == Stdin ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4191
        stream := StdinReplacementFileQuerySignal raiseRequest.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4192
        stream isNil ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4193
            ^ -1 "/ 0  EOF
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4194
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4195
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4196
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4197
    FileIOTrace ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4198
        ('JAVA: read ' , count printString , ' bytes from ' , stream pathName) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4199
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4200
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4201
    stream isPositionable ifFalse:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4202
        "/ mhmh - some kind of socket or pipe
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4203
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4204
        stream readWait.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4205
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4206
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4207
    count == 0 ifTrue:[^0].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4208
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4209
    Stream readErrorSignal handle:[:ex |
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4210
        nRead := -1
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4211
    ] do:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4212
        nRead := stream nextAvailableBytes:count into:bytes startingAt:offset+1.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4213
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4214
    nRead == 0 ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4215
        stream atEnd ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4216
            FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4217
                ('JAVA: at EOF ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4218
            ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4219
            ^ -1
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4220
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4221
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4222
    count ~~ nRead ifTrue:[
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4223
        FileIOTrace ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4224
            ('JAVA: only got ' , nRead printString) infoPrintCR.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4225
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4226
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4227
    ^ nRead
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4228
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4229
    "Created: / 04-02-1998 / 15:20:00 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4230
    "Modified: / 10-11-1998 / 19:56:47 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4231
    "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
  4232
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4233
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4234
anyStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4235
    |bytes offset count stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4237
    bytes := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4238
    offset := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4239
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4241
    stream := self validateFile:(nativeContext receiver).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4243
    FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4244
        stream isFileStream ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4245
            Logger log: ('write ' , count printString , ' bytes to ' , stream pathName) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4246
        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4247
            stream ~~ Stdout ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4248
                stream ~~ Stderr ifTrue:[
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4249
                    Logger log: ('write ' , count printString , ' bytes to ' , stream displayString) severity: #info facility: 'JVM'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4250
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4251
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4252
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4253
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4255
    "/ should always be bytes
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4256
    Stream writeErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4257
        ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4258
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4259
        Socket brokenConnectionSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4260
            ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4261
        ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4262
            stream isBinary ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4263
                stream nextPutBytes:count from:bytes startingAt:offset+1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4264
            ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4265
                stream nextPutAll: (bytes asString copyFrom: offset + 1 to: offset + count).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4266
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4267
            
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4268
        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4269
        stream == Transcript ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4270
            Transcript endEntry
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4271
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4272
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4273
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4274
    "Created: / 04-02-1998 / 15:23:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4275
    "Modified: / 16-02-1999 / 11:32:45 / cg"
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  4276
    "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
  4277
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4279
checkWritePermissionOfDirectory:dir message:msg
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4280
    |answer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4282
    (PermittedDirectories notNil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4283
    and:[PermittedDirectories includes:dir]) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4284
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4285
	    answer := Dialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4286
		    confirmWithCancel:msg withCRs
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4287
			       labels:#('no' 'grant')
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4288
			       values:#(false true)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4289
			      default:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4290
	    answer == false ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4291
		^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4292
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4294
	    (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir pathName , ''') ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4295
	    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4296
		PermittedDirectories isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4297
		    PermittedDirectories := Set new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4298
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4299
		PermittedDirectories add:dir.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4300
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4301
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4302
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4303
    ^ true
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4305
    "Created: / 3.12.1998 / 15:07:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4306
    "Modified: / 3.12.1998 / 15:16:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4307
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4308
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4309
commonClose:nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4310
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4311
    | fdobj fd stream |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4312
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4313
    fd    := fdobj instVarNamed: #fd.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4314
    fd == -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4315
        "Never opened or already closed"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4316
        ^self.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  4317
    ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4318
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4319
    stream notNil ifTrue:[
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4320
        stream isView ifTrue:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4321
            "Some applications close stdout/stderr (such as Apache Tomcat).
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4322
             We don't want that, so ignore a close in that case"
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4323
            stream ~~ Transcript ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4324
                self breakPoint: #jv. 
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4325
            ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4326
        ] ifFalse:[
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4327
            (stream ~~ Stdout and:[stream ~~ Stderr and:[stream ~~ Stdin]]) ifTrue:[
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4328
                stream close.
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
  4329
            ]
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  4330
        ]
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4331
    ] ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4332
        self breakPoint: #jv.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4333
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4334
    self setOpenFile: nil at: fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4335
    fdobj instVarNamed:#fd put: -1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4336
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4337
    "Created: / 10-08-2011 / 14:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4338
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4339
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4340
commonOpen:nativeContext forAppend:forAppend
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4341
    |fs fd fn name dir stream fileNo readonly|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4343
    fs := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4344
    fd := fs instVarNamed:'fd'.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4345
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4346
        "/self halt:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4347
        self internalError:'file already open'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4348
        ^ self.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4349
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4350
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4351
    name := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4352
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4354
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4355
        ('JAVA: opening ' , name) infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4356
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4357
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  4358
    fn := name utf8Decoded asFilename.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4359
    dir := fn directory pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4361
    readonly := false.
904
vranyj1
parents: 903
diff changeset
  4362
"/    (PermittedDirectories notNil
vranyj1
parents: 903
diff changeset
  4363
"/    and:[PermittedDirectories includes:dir]) ifFalse:[
vranyj1
parents: 903
diff changeset
  4364
"/        FileOpenConfirmation ifTrue:[
vranyj1
parents: 903
diff changeset
  4365
"/            answer := Dialog 
vranyj1
parents: 903
diff changeset
  4366
"/                    confirmWithCancel:('JAVA Security check\\Opening ''' , name , ''' for read/write.\Grant permission ?') withCRs
vranyj1
parents: 903
diff changeset
  4367
"/                               labels:#('no' 'grant' 'readonly')
vranyj1
parents: 903
diff changeset
  4368
"/                               values:#(false true #readonly)
vranyj1
parents: 903
diff changeset
  4369
"/                              default:3.
vranyj1
parents: 903
diff changeset
  4370
"/            answer == false ifTrue:[
vranyj1
parents: 903
diff changeset
  4371
"/                self throwIOExceptionWithMessage:('no permission to open ' , name , ' for writing').
vranyj1
parents: 903
diff changeset
  4372
"/                ^ self
vranyj1
parents: 903
diff changeset
  4373
"/            ].
vranyj1
parents: 903
diff changeset
  4374
"/            readonly := (answer == #readonly).
vranyj1
parents: 903
diff changeset
  4375
"/
vranyj1
parents: 903
diff changeset
  4376
"/            readonly ifFalse:[
vranyj1
parents: 903
diff changeset
  4377
"/                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
vranyj1
parents: 903
diff changeset
  4378
"/                ifTrue:[
vranyj1
parents: 903
diff changeset
  4379
"/                    PermittedDirectories isNil ifTrue:[
vranyj1
parents: 903
diff changeset
  4380
"/                        PermittedDirectories := Set new
vranyj1
parents: 903
diff changeset
  4381
"/                    ].
vranyj1
parents: 903
diff changeset
  4382
"/                    PermittedDirectories add:dir.
vranyj1
parents: 903
diff changeset
  4383
"/                ]
vranyj1
parents: 903
diff changeset
  4384
"/            ]
vranyj1
parents: 903
diff changeset
  4385
"/        ]
vranyj1
parents: 903
diff changeset
  4386
"/    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4387
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4388
    readonly ifTrue:[
904
vranyj1
parents: 903
diff changeset
  4389
        (fn exists and:[fn isReadable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4390
            ^self throwFileNotFoundException: 'File is not readable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4391
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4392
        stream := fn readStream.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4393
    ] ifFalse:[    
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4394
"/        fn exists ifFalse:[
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4395
"/            ^self throwFileNotFoundException: 'File does not exist'
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4396
"/        ].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4397
        fn isDirectory ifTrue:[
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4398
             ^self throwFileNotFoundException: 'File is directory'
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  4399
        ].
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  4400
        (fn exists and:[fn isWritable not]) ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4401
            ^self throwFileNotFoundException: 'File does not writable'    
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4402
        ].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4403
        forAppend ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4404
            stream := self commonOpenStreamUsing:[fn appendingWriteStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4405
        ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4406
            stream := self commonOpenStreamUsing:[fn writeStream].
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4407
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4408
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4409
    stream isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4410
        self throwIOExceptionWithMessage:('cannot open ' , name , ' for writing').
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4411
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4412
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4413
    fileNo := self addOpenFile:stream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4414
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4415
    FileOpenTrace ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4416
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4417
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4418
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4419
    fd instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4420
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4421
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4422
    fs finalizationLobby registerChange: fs
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  4423
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4424
    "Created: / 07-04-1998 / 19:14:09 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  4425
    "Modified: / 04-01-1999 / 14:34:42 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4426
    "Modified: / 23-07-2012 / 19:38:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4427
!
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4428
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4429
commonOpenStreamUsing: aBlock
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4430
    "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
  4431
     and tries to GC to cleanup if necessary"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4432
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4433
    | stream retry |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4434
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4435
    retry := false.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4436
    [ stream := aBlock value ] on:OpenError do:[:ex|
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4437
        (ex errorCode) == (OperatingSystem errorNumberFor:#EMFILE) ifTrue:[
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4438
            "Worst case, try to cleanup"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4439
            Logger log: 'maximum number of open files reached, forcing finalization...' severity: #warn facility: #JVM.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4440
            [
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4441
                FinalizationLobby finalizeNow.
1552
89c63e6303f1 - extensions
vranyj1
parents: 1551
diff changeset
  4442
                Delay waitForSeconds: 5. "/Give Java finalization thread a chance to clean up
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4443
                ObjectMemory garbageCollect.
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4444
                retry := true.
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
  4445
                PerfCounters printOpenExternalStreamsOn: Stderr.
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4446
            ] on: Error do:[:ex|
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4447
                Logger log: 'failed to force finalization: ', ex description severity: #error facility: #JVM
1551
2af2aa41bddb - JavaFinalizationRegistry
vranyj1
parents: 1550
diff changeset
  4448
            ].
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4449
        ] ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4450
            ex pass.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4451
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4452
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4453
    retry ifTrue:[
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4454
        stream := aBlock value.
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4455
        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
  4456
    ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4457
    ^stream
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4458
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4459
    "Created: / 23-07-2012 / 19:33:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1598
67d1b6811a57 - JavaClassReader
vranyj1
parents: 1597
diff changeset
  4460
    "Modified: / 14-08-2012 / 02:25:06 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4461
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4462
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4463
fileStreamForReading:name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4464
    |fn stream tryAlongClassPath|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4465
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4466
    FileOpenTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4467
        ('JAVA: opening for read:' , name) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4468
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4469
    fn := name asFilename.
904
vranyj1
parents: 903
diff changeset
  4470
    fn exists  ifFalse:[
vranyj1
parents: 903
diff changeset
  4471
        ^self throwFileNotFoundException: 'File does not exists'
vranyj1
parents: 903
diff changeset
  4472
    ].
vranyj1
parents: 903
diff changeset
  4473
    fn isDirectory ifTrue:[
vranyj1
parents: 903
diff changeset
  4474
        ^self throwFileNotFoundException: 'File is directory'
vranyj1
parents: 903
diff changeset
  4475
    ].
vranyj1
parents: 903
diff changeset
  4476
    fn isReadable  ifFalse:[
vranyj1
parents: 903
diff changeset
  4477
        ^self throwFileNotFoundException: 'File is not readable'
vranyj1
parents: 903
diff changeset
  4478
    ].
vranyj1
parents: 903
diff changeset
  4479
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4480
    stream := self commonOpenStreamUsing:[fn readStream].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4481
    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4483
    fn isAbsolute ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4484
        "/ if not absolute, try along classPath
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4485
        "/ This allows classes to open local files (JEdit)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4486
        "/ even if they have NOT been loaded by a Java classLoader.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4487
        "/ Only do this for image files 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4488
        "/ (and maybe some other config files in the future),
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4489
        "/ to avoid security holes.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4490
        tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4491
"/        tryAlongClassPath := false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4492
"/        (fn hasSuffix:'gif') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4493
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4494
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4495
"/        (fn hasSuffix:'jpg') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4496
"/            tryAlongClassPath := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4497
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4498
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4499
        tryAlongClassPath ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4500
            Java effectiveClassPath do:[:dirName |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4501
                |fn|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4503
                (fn := dirName asFilename construct:name) exists ifTrue:[
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4504
                    fn isReadable ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4505
                        self throwFileNotFoundException: 'File is not readable'.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4506
                        ^nil
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  4507
                    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4508
                    stream := fn readStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4509
                    stream notNil ifTrue:[^ stream].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4510
                ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4511
            ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4512
        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4513
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4514
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4516
    "Modified: / 27-01-1999 / 18:54:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  4517
    "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
  4518
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4520
fixFilename:path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4521
    OperatingSystem isMSDOSlike ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4522
	(#($/ $\) includes:(path at:1)) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4523
	    (path at:3) == $: ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4524
		^ path copyFrom:2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4525
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4526
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4527
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4528
    ^ path
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4530
    "Created: / 20.10.1998 / 20:58:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4531
    "Modified: / 20.10.1998 / 21:06:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4532
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4533
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4534
validateFile:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4535
    |fileNo file|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4537
    fileNo := self validateFileNo:javaStream.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4538
    file := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4540
    file isNil ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4541
        self throwIOExceptionWithMessage:('stream with file descriptor %1 closed or was never open' bindWith: fileNo).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4542
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4543
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4545
    ^ file
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4546
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4547
    "Created: / 04-01-1998 / 16:50:38 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4548
    "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
  4549
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4550
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4551
validateFileDescriptor: jFileDescriptor
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4552
    "Validates given instance of java.io.FileDescriptor.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4553
     If it is valid, return underlying Smalltalk stream,
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4554
     otherwise, throws java.io.IOException"    
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4555
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4556
    | fileNo stream |
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4557
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4558
    fileNo := jFileDescriptor instVarNamed:'fd'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4559
    ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4560
        fileNo := jFileDescriptor instVarNamed:'handle'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4561
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4562
    fileNo isInteger ifFalse:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4563
        self throwIOExceptionWithMessage:'Invalid fd in java.io.FileDescriptor'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4564
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4565
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4566
    fileNo == -1 ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4567
        self throwIOExceptionWithMessage:'java.io.FileDescriptor not open'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4568
        ^ nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4569
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4570
    stream := self getOpenFileAt:fileNo.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4571
    stream isNil ifTrue:[
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4572
        self throwIOExceptionWithMessage:'Stale descriptor in java.io.FileDescriptor (VM stream does not exists)'.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4573
        ^nil
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4574
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4575
    ^ stream.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4576
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4577
    "Created: / 06-07-2012 / 23:02:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4578
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
  4579
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4580
validateFileNo:javaStream
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4581
    |fileNo descriptor|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4583
    "/ JDK 1.1.3 has fileDescriptor wrapped
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4584
    "/ JDK 1.0 has it directly as integer
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4585
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4586
    fileNo := javaStream instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4587
    fileNo isInteger ifFalse:[
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4588
        descriptor := fileNo.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4589
        descriptor notNil ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4590
            fileNo := descriptor instVarNamed:'fd'.
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4591
            ((fileNo == -1) and:[OperatingSystem isMSWINDOWSlike]) ifTrue:[
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4592
                fileNo := descriptor instVarNamed:'handle'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4593
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4594
            fileNo isInteger ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4595
                self throwIOExceptionWithMessage:('invalid fd value in FileDescriptor (%1 [%2])' bindWith: fileNo with: fileNo class).
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4596
                ^self
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4597
            ].
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4598
            ^fileNo
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4599
        ]
752
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
    fileNo isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4603
"/        self halt:'invalid fileNo in read'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4604
"/        self internalError:'invalid fileNo in read'.
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4605
        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
  4606
        ^ nil
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4607
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4608
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4609
    ^ fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4610
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  4611
    "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
  4612
    "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
  4613
    "Modified: / 18-08-2011 / 20:03:37 / jv"
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  4614
    "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
  4615
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4617
!JavaVM class methodsFor:'helpers - reflection'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4619
classForJavaClassObject:aJavaClassObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4620
    "given java.lang.class instance, return the real class for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4621
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4622
    ^ self reflection classForJavaClassObject:aJavaClassObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4623
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4624
    "Created: / 23-01-1998 / 17:44:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4625
    "Modified: / 03-02-2011 / 21:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4626
    "Modified: / 09-02-2011 / 01:02:17 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4627
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4628
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  4629
javaClassObjectForClass: aClass 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4630
    "given a real class, return the corresponding java.lang.class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4631
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4632
    
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4633
"/    | class |
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4634
"/
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4635
"/    "find reflection of StClass in the Java World"
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4636
"/    (JavaObjectDictionary new hasReflection: aClass name) ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4637
"/        class := JavaObjectDictionary new reflectionOf: aClass name
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4638
"/    ] ifFalse: [ class := aClass. ].
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4639
    ^ self reflection javaClassObjectForClass: aClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4640
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4641
    "Created: / 23-01-1998 / 17:43:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4642
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4643
    "Modified: / 17-01-2011 / 19:24:22 / kursjan <kursjan@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4644
    "Modified: / 28-01-2011 / 14:31:25 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  4645
    "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
  4646
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4648
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4649
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4650
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4651
    self breakPoint:#mh info:'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4652
    ^ self reflection javaConstructorObjectForMethod: method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4653
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4654
    "Modified: / 09-02-2011 / 00:58:09 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4655
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4656
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4657
javaFieldObjectForField: aJavaField in: aJavaLangClass 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4658
    "given a java field, return the corresponding java.lang.Field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4659
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4660
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4661
        See OpenJDK7 source:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4662
        jdk7/hotspot/src/share/vm/runtime/reflection.cpp,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4663
        oop Reflection::new_field"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4664
    
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4665
    | field  clazz  name  slot  type  modifiers |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4666
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4667
    clazz := aJavaLangClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4668
    name := self reflection javaStringObjectForString: aJavaField name
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4669
                interned: true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4670
    slot := aJavaField index.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4671
    type := self javaClassObjectForClass: aJavaField typeClass.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4672
    modifiers := aJavaField accessFlags.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4673
    field := (self classForName: 'java.lang.reflect.Field') new.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4674
    field
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4675
        instVarNamed: #clazz put: clazz;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4676
        instVarNamed: #name put: name;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4677
        instVarNamed: #slot put: slot;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4678
        instVarNamed: #type put: type;
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4679
        instVarNamed: #modifiers put: modifiers;
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4680
        yourself.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4681
    aJavaField annotations 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4682
        ifNotNil: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4683
            field instVarNamed: #annotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4684
                put: aJavaField annotations runtimeVisible rawAnnotations
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  4685
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4686
    ^ field.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4688
    "Modified: / 05-12-1998 / 15:29:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4689
    "Created: / 22-11-2010 / 17:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4690
    "Modified: / 09-02-2011 / 01:06:20 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4691
    "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
  4692
    "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
  4693
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4694
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4695
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4696
    "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4697
     instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4698
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4699
    ^ self reflection javaMethodObjectForMethod:method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4701
    "Modified: / 28-02-2011 / 17:08:36 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4702
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4703
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4704
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4705
    "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4706
     it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4707
    self breakPoint:#mh info: 'refactor my sender to call reflection directly'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4708
    ^ self reflection methodForJavaConstructorObject: constructor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4709
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4710
    "Modified: / 09-02-2011 / 00:59:43 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4711
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4712
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4713
methodForJavaMethodObject:aJavaMethodObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4714
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4715
        Given an instance of java.lang.reflect.Method, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4716
        real method associated with it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4717
   ^ self reflection methodForJavaMethodObject:aJavaMethodObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4719
    "Modified: / 07-02-2011 / 09:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4720
    "Modified: / 28-02-2011 / 16:58:05 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4721
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  4722
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4723
!JavaVM class methodsFor:'monitors'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4724
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4725
monitorEnter: someObject in: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4726
    | thisProcess wasBlocked |
1549
d99bd163584e - JavaFinalizationRegistry
vranyj1
parents: 1548
diff changeset
  4727
    self assert: (aJavaContext isNil or:[aJavaContext isJavaContext]).
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4728
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4729
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4730
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4731
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4732
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4733
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4734
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4735
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4736
            log: ('MONENTER: entering monitor for %1 in %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4737
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4738
                    with: thisProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4739
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4740
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4741
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4742
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4743
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4744
    self enterMonitor: someObject ofProcess: thisProcess.
1549
d99bd163584e - JavaFinalizationRegistry
vranyj1
parents: 1548
diff changeset
  4745
    aJavaContext notNil ifTrue:[aJavaContext addMonitor: someObject].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4746
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4747
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4748
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4749
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4750
            log: 'MONENTER: monitor entered in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4751
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4752
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4753
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4754
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4755
    "Created: / 08-11-2011 / 15:15:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1549
d99bd163584e - JavaFinalizationRegistry
vranyj1
parents: 1548
diff changeset
  4756
    "Modified: / 24-07-2012 / 03:44:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4757
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4758
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4759
monitorExit: someObject in: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4760
    | thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4761
    self assert: (aJavaContext isJavaContext).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4762
    someObject isNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4763
        self throwNullPointerException.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4764
        self breakPoint: #mh.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4765
        ^ self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4766
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4767
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4768
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4769
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4770
            log: ('MONEXIT: leaving monitor for %1 in %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4771
                    bindWith: (self monitorFriendlyPrintStringOf: someObject)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4772
                    with: thisProcess name) , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4773
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4774
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4775
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4776
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4777
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4778
    self leaveMonitor: someObject ofProcess: thisProcess.
1549
d99bd163584e - JavaFinalizationRegistry
vranyj1
parents: 1548
diff changeset
  4779
    aJavaContext notNil ifTrue:[aJavaContext removeMonitor: someObject].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4780
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4781
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4782
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4783
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4784
            log: 'MONEXIT: monitor left in ' , thisProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4785
            severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4786
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4787
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4788
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4789
    "Created: / 08-11-2011 / 15:17:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1549
d99bd163584e - JavaFinalizationRegistry
vranyj1
parents: 1548
diff changeset
  4790
    "Modified: / 24-07-2012 / 03:40:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4791
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4792
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4793
notify: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4794
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4795
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4796
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4797
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4798
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4799
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4800
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4801
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4802
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4803
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4804
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4805
    mon notify.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4806
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4807
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4808
    "Created: / 22-11-2011 / 13:26:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4809
    "Modified: / 13-04-2012 / 00:39:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4810
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4811
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4812
notifyAll: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4813
    | mon  thisProcess  wasBlocked|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4814
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4815
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4816
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4817
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4818
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4819
        wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4820
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4821
            throwIllegalMonitorStateException: 'monitor was not owned when called notify'.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4822
        ^self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4823
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4824
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4825
    mon notifyAll.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4826
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4827
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4828
    "Created: / 22-11-2011 / 13:26:30 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4829
    "Modified: / 13-04-2012 / 00:40:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4830
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4831
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4832
releaseMonitorsOfUnwindingContext: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4833
    "Forcibly releases all monitors acquired by given context.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4834
     Use by unwind handlers"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4835
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4836
    | thisProcess  wasBlocked|
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4837
    MonitorTrace ifTrue:[
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4838
        Logger 
1486
48012ce29afd - TestletTestCaseProxy
vranyj1
parents: 1481
diff changeset
  4839
            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
  4840
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4841
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4842
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4843
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4844
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4845
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4846
    aJavaContext acquiredMonitorsDo: [ :each | 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4847
        JavaVM 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4848
            monitorExit: each
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4849
            in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4850
            ifOwnedBy: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4851
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4852
    wasBlocked ifFalse:[OperatingSystem unblockInterrupts].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4853
1478
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4854
    MonitorTrace ifTrue:[
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4855
        Logger 
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4856
            log: ('UNWIND HANDLER: leftover monitors left for ' , aJavaContext printString )
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4857
            severity: #info
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4858
            facility: #JVM.
329a15eedd36 - improvements in class reloading
vranyj1
parents: 1476
diff changeset
  4859
    ].
1476
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4860
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4861
    "Created: / 05-04-2012 / 11:35:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4862
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4863
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4864
sleepForTimeout: tmo state: state 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4865
    "wait"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4866
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4867
    | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4868
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4869
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4870
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4871
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4872
                    throwInterruptedException: 'process was interrupted before/during sleep !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4873
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4874
    thisProcess state: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4875
    (Delay forMilliseconds: tmo) waitWithState: state.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4876
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4877
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4878
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4879
            throwInterruptedException: 'process was interrupted before/during sleep !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4880
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4881
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4882
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4883
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4884
    "Created: / 30-11-2011 / 11:04:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4885
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4886
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4887
waitOn: handle forTimeout: tmo state: state 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4888
    "wait"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4889
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4890
    | wasBlocked  thisProcess  mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4891
    thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4892
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4893
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4894
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4895
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4896
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4897
    wasBlocked := OperatingSystem blockInterrupts.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4898
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4899
    (mon isOwnedBy: thisProcess) ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4900
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4901
        self throwIllegalMonitorStateException: 'monitor was not owned on wait by ' , thisProcess printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4902
        ^self.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4903
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4904
    state notNil ifTrue: [ thisProcess state: state ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4905
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4906
    mon waitForMilliseconds: tmo.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4907
    thisProcess isInterrupted ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4908
        thisProcess clearInterrupted.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4909
        self 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4910
            throwInterruptedException: 'process was interrupted before/during wait !!?'
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4911
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4912
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4913
    "Created: / 30-12-1998 / 19:19:35 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4914
    "Modified: / 08-01-1999 / 17:29:24 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4915
    "Created: / 22-11-2011 / 13:20:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4916
    "Modified: / 13-04-2012 / 00:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4917
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4918
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4919
!JavaVM class methodsFor:'monitors-internal'!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4920
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4921
acquireMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4922
    "Acquire* (stay in the queue and get it) monitor.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4923
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4924
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4925
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4926
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4927
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4928
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4929
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4930
            log: ('acquiring monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4931
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4932
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4933
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4934
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4935
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4936
    mon acquire.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4937
    self assert:(mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4938
    self acquiredMonitorsOf: aProcess add: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4939
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4940
    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4941
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4942
    "Created: / 17-11-2011 / 19:01:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4943
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4944
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4945
acquireMonitorAndNotifyAll: handle 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4946
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4947
    mon := self monitorFor: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4948
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4949
    self notifyAll: handle.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4950
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4951
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4952
    "Created: / 29-11-2011 / 14:24:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4953
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4954
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4955
acquireMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4956
    "will try to acquire all entered monitors of process"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4957
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4958
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4959
    (self hasEnteredMonitorsOfProcess: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4960
        enteredMonitors := self copyEnteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4961
        self assert: enteredMonitors notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4962
        enteredMonitors do: [:each | self acquireMonitor: each ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4963
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4964
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4965
    "Created: / 17-11-2011 / 17:16:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4966
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4967
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4968
acquiredMonitorsOf: aProcess add: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4969
   
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4970
    ^ (self acquiredMonitorsOfProcess: aProcess) add: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4971
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4972
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4973
    "Created: / 17-11-2011 / 18:29:16 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4974
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4975
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4976
acquiredMonitorsOf: aProcess remove: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4977
"/    self assert: ((self acquiredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4978
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4979
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4980
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4981
        self assert: ((self acquiredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4982
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4983
    (self acquiredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4984
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4985
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4986
    "Created: / 17-11-2011 / 18:40:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4987
    "Modified: / 11-04-2012 / 23:37:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4988
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4989
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4990
acquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4991
    ^ AcquiredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4992
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4993
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4994
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4995
            AcquiredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4996
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4997
        ] 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4998
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  4999
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5000
    "Created: / 17-11-2011 / 18:29:09 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5001
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5002
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5003
acquiredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5004
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5005
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5006
    ^ AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5007
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5008
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5009
    "Created: / 17-11-2011 / 17:03:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5010
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5011
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5012
copyAcquiredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5013
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5014
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5015
    ^ (AcquiredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5016
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5017
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5018
    "Created: / 17-11-2011 / 19:23:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5019
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5020
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5021
copyEnteredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5022
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5023
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5024
    ^ (EnteredMonitorsPerProcess at: aProcess ifAbsent: nil) copy.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5025
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5026
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5027
    "Created: / 17-11-2011 / 19:22:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5028
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5029
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5030
countAcquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5031
    | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5032
    acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5033
    ^ acquiredMonitors isNil ifTrue: [ 0 ] ifFalse: [ acquiredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5034
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5035
    "Created: / 17-11-2011 / 18:23:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5036
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5037
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5038
countEnteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5039
    | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5040
    enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5041
    ^ enteredMonitors isNil ifTrue: [ 0 ] ifFalse: [ enteredMonitors size ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5042
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5043
    "Created: / 17-11-2011 / 17:14:14 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
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
enterMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5047
    "registers itself as one of processes wanting monitor and then tries to acquire it."
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5048
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5049
    | mon objInLists |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5050
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5051
        MonitorTraceId := MonitorTraceId + 1.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5052
        objInLists := { obj . MonitorTraceId }
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5053
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5054
        objInLists := obj
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5055
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5056
    self enteredMonitorsOf: aProcess add: objInLists.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5057
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5058
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5059
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5060
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5061
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5062
            log: ('[trace id %3] Entering monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5063
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5064
                    with: aProcess id
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5065
                    with: MonitorTraceId)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5066
            severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5067
            facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5068
            originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5069
            "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5070
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5071
    mon enter.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5072
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5073
    self acquiredMonitorsOf: aProcess add: objInLists.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5074
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: objInLists).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5075
    self assert: ((self acquiredMonitorsOfProcessAt: aProcess) includes: objInLists).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5076
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5077
    "Created: / 17-11-2011 / 19:03:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5078
    "Modified: / 13-04-2012 / 01:18:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5079
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5080
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5081
enteredMonitorsOf: aProcess add: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5082
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5083
    ^ (self enteredMonitorsOfProcess: aProcess) addLast: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5084
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5085
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5086
    "Created: / 17-11-2011 / 16:25:04 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5087
    "Modified: / 13-04-2012 / 01:05:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5088
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5089
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5090
enteredMonitorsOf: aProcess remove: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5091
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) includes: anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5092
"/    self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5093
    MonitorTrace ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5094
        self assert: ((self enteredMonitorsOfProcess: aProcess) last first == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5095
    ] ifFalse:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5096
        self assert: ((self enteredMonitorsOfProcess: aProcess) last == anyObject).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5097
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5098
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5099
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5100
    (self enteredMonitorsOfProcess: aProcess) removeLast.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5101
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5102
    "Modified: / 08-01-1999 / 14:02:15 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5103
    "Created: / 17-11-2011 / 18:40:45 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5104
    "Modified: / 11-04-2012 / 23:37:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5105
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5106
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5107
enteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5108
    ^ EnteredMonitorsPerProcess at: aProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5109
        ifAbsent: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5110
            | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5111
            monitors := OrderedCollection new.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5112
            EnteredMonitorsPerProcess at: aProcess put: monitors.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5113
            monitors
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5114
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5115
            .
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5116
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5117
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5118
    "Modified: / 17-11-2011 / 19:22:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5119
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5120
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5121
enteredMonitorsOfProcessAt: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5122
    "does not create empty collection like enteredMonitorsOfProcess"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5123
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5124
    ^ EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5125
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5126
    "Created: / 08-01-1999 / 14:02:02 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5127
    "Created: / 16-11-2011 / 15:37:58 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5128
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5129
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5130
exitOwnedMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5131
   |thisProcess monitors|
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5132
   thisProcess := Processor activeProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5133
   monitors := self acquiredMonitorsOfProcess: thisProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5134
   monitors do: [:each | self assert: (each isOwnedBy:thisProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5135
    each exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5136
    ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5137
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5138
    "Created: / 05-12-2011 / 21:15:54 / 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
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5141
has: aProcess enteredMonitorFor: anyObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5142
    ^ (self enteredMonitorsOfProcess: aProcess) includes: anyObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5143
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5144
    "Created: / 17-11-2011 / 16:28:44 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5145
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5146
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5147
hasAcquiredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5148
   | acquiredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5149
   acquiredMonitors := self acquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5150
   ^ acquiredMonitors isNil 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5151
   ifTrue: [ false ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5152
           ifFalse: [ acquiredMonitors size > 0 ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5153
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5154
    "Created: / 17-11-2011 / 17:07:01 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5155
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5156
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5157
hasEnteredMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5158
   | enteredMonitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5159
   enteredMonitors := self enteredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5160
   ^ enteredMonitors isNil ifTrue: [ false ] ifFalse: [ enteredMonitors size > 0].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5161
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5162
    "Created: / 17-11-2011 / 17:09:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5163
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5164
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5165
leaveMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5166
    "Leave* (release and never come back, exit) monitor owned by given project.     
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5167
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5168
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5169
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5170
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5171
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5172
    "/self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5173
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5174
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5175
        log: ('[trace id %3] leaving monitor %1 owned by thread: %2 ' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5176
                bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5177
                with: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5178
                with: (self enteredMonitorsOfProcess: aProcess) last second)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5179
        severity: #trace
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5180
        facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5181
        originator: self
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5182
        "/attachment: thisContext fullPrintAllString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5183
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5184
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5185
    mon exit.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5186
    self acquiredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5187
    self enteredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5188
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5189
    "Created: / 17-11-2011 / 18:46:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5190
    "Modified: / 13-04-2012 / 01:17:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5191
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5192
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5193
leaveMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5194
    "Leave* (release and never come back, exit) all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5195
     Called when cleaning up after process death or when handling smalltalk (non-java) exceptions
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5196
     (such an exception in native method)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5197
     *leave is the word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5198
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5199
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5200
    monitors := EnteredMonitorsPerProcess at: aProcess ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5201
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5202
        monitors do: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5203
            :obj | 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5204
            | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5205
            mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5206
            mon notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5207
                (mon isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5208
                    Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5209
                        log: ('leaving monitor owned by dying thread: ' , aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5210
                        severity: #info
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5211
                        facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5212
                    self breakPoint: #jv.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5213
                    mon exit
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5214
                ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5215
            ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5216
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5217
        EnteredMonitorsPerProcess removeKey: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5218
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5219
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5220
    "Created: / 17-11-2011 / 16:51:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5221
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5222
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5223
monitorExit: someObject in: aJavaContext ifOwnedBy: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5224
    | monitor |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5225
    monitor := self monitorFor: someObject.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5226
    (monitor isOwnedBy: aProcess) ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5227
        self monitorExit: someObject in: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5228
    ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5229
        MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5230
            Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5231
                log: ('%1 trying to exit monitor for %2, but it does not own it. Ignoring' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5232
                        bindWith: aProcess name
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5233
                        with: (self monitorFriendlyPrintStringOf: someObject))
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5234
                severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5235
                facility: #JVM
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5236
        ]
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5237
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5238
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5239
    "Created: / 17-11-2011 / 21:17:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5240
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5241
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5242
monitorFor: someObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5243
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5244
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5245
"/    JV@2012-04-13: Removed the critical section - this method should be called
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5246
"/                   only when interrupts are blocked
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5247
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5248
"/    LockTableAccess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5249
"/        critical: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5250
            mon := LockTable at: someObject ifAbsent: nil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5251
            mon isNil ifTrue: [ LockTable at: someObject put: (mon := JavaMonitor for: someObject) ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5252
"/        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5253
    ^ mon
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5254
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5255
    "Created: / 02-01-1998 / 19:01:52 / cg"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5256
    "Modified: / 30-11-2011 / 20:40:26 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5257
    "Modified: / 13-04-2012 / 00:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5258
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5259
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5260
monitorFriendlyPrintStringOf: someObject 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5261
    | objString |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5262
    someObject isJavaClass ifTrue: [ objString := someObject name ] ifFalse: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5263
        objString := someObject class name , '@' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5264
                    , someObject identityHash printString.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5265
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5266
    ^ objString
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5267
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5268
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5269
releaseMonitor: obj ofProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5270
    "Release* (let go and wait for it again) monitor owned by given project.     
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5271
     *word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5272
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5273
    | mon |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5274
    mon := JavaVM monitorFor: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5275
    self assert: mon notNil.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5276
    self assert: (mon isOwnedBy: aProcess).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5277
    MonitorTrace ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5278
        Logger 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5279
            log: ('releasing monitor %1 owned by thread: %2' 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5280
                    bindWith: (self monitorFriendlyPrintStringOf: obj)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5281
                    with: aProcess name)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5282
            severity: #debug
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5283
            facility: #JVM.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5284
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5285
    mon release.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5286
    self acquiredMonitorsOf: aProcess remove: obj.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5287
    self assert: ((self enteredMonitorsOfProcessAt: aProcess) includes: obj).
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5288
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5289
    "Created: / 17-11-2011 / 18:51:00 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5290
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5291
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5292
releaseMonitorsOfProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5293
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5294
    self releaseMonitorsOfProcess: Processor activeProcess
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5295
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5296
    "Created: / 04-11-2011 / 22:15:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5297
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5298
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5299
releaseMonitorsOfProcess: aProcess 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5300
    "Releases* all monitors owned by given project.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5301
     Monitor can be acquired again, (aProcess going into WAIT)
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5302
     *word used by jvm spec"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5303
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5304
    | monitors |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5305
    monitors := self copyAcquiredMonitorsOfProcessAt: aProcess.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5306
    monitors notNil ifTrue: [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5307
        monitors do: [:obj | self releaseMonitor: obj ofProcess: aProcess. ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5308
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5309
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5310
    "Created: / 04-11-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5311
    "Modified: / 17-11-2011 / 21:29:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5312
    "Modified (comment): / 05-12-2011 / 21:13:29 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5313
!
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5314
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5315
unwindHandlerForJavaContext: aJavaContext 
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5316
    "given a context which has been marked for unwind,
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5317
     retrieve the handler block. This method is called when ST
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5318
     exception raises and stack is unwinding. JavaClass instance
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5319
     has an opportunity to clean up monitors"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5320
    
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5321
    ^ [
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5322
        | thisProcess |
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5323
        aJavaContext shouldExecuteFinallyOnUnwind ifTrue:[
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5324
            self throwExceptionForFinallyIn: aJavaContext
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5325
        ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5326
        self releaseMonitorsOfUnwindingContext: aJavaContext.
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5327
    ].
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5328
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5329
    "Created: / 08-11-2011 / 12:30:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5330
    "Modified: / 17-11-2011 / 21:33:17 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5331
    "Modified: / 10-04-2012 / 11:08:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5332
! !
1f960ed67758 Fixes for monitors
vranyj1
parents: 1475
diff changeset
  5333
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5334
!JavaVM class methodsFor:'monitors-obsolete'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5335
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5336
waitFor: sema state: pState timeOut: tmo 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5337
    "wait"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5338
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5339
    | wasBlocked  thisProcess  releasedCount  acquiredCount |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5340
    thisProcess := Processor activeProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5341
    wasBlocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5342
    releasedCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5343
    (self hasAcquiredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5344
        MonitorTrace ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5345
            Logger 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5346
                log: thisProcess name , ' going into WAIT - releasing ' 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5347
                        , (self countAcquiredMonitorsOfProcess: thisProcess) printString 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5348
                            , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5349
                severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5350
                facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5351
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5352
        self releaseMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5353
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5354
    wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5355
    pState notNil ifTrue: [ thisProcess state: pState ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5356
    sema isNil ifTrue: [ Delay waitForMilliseconds: tmo ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5357
        (tmo isNil or: [ tmo = 0 ]) ifTrue: [ sema wait. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5358
            sema waitWithTimeout: tmo / 1000.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5359
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5360
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5361
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5362
    "/ re-enter monitors.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5363
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5364
    (self hasEnteredMonitorsOfProcess: thisProcess) ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5365
        wasBlocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5366
        Logger 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5367
            log: thisProcess name , ' has been notified - trying to acquire ' 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5368
                    , (self countEnteredMonitorsOfProcess: thisProcess) printString 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5369
                        , ' monitors'
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5370
            severity: #debug
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5371
            facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5372
        self acquireMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5373
        acquiredCount := self countAcquiredMonitorsOfProcess: thisProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5374
        self assert: acquiredCount = releasedCount.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5375
        wasBlocked ifFalse: [ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5376
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5377
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5378
    "Created: / 30-12-1998 / 19:19:35 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5379
    "Modified: / 08-01-1999 / 17:29:24 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5380
    "Modified: / 20-11-2011 / 12:36:47 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5381
! !
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
  5382
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5383
!JavaVM class methodsFor:'native - com.sun.management'!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5384
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5385
_com_sun_management_UnixOperatingSystem_initialize: nativeContext
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5386
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5387
    <javanative: 'com/sun/management/UnixOperatingSystem' name: 'initialize()V'>
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5388
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5389
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
  5390
^self.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5391
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5392
    "Modified: / 03-11-2011 / 18:59:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5393
! !
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  5394
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5395
!JavaVM class methodsFor:'native - java.awt'!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5396
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5397
_java_awt_AWTEvent_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5398
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5399
    <javanative: 'java/awt/AWTEvent' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5400
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5401
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5402
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5403
    "Modified: / 12-08-2011 / 19:08:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5404
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5405
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5406
_java_awt_Button_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5407
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5408
    <javanative: 'java/awt/Button' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5409
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5410
    "Modified: / 09-02-2012 / 22:54:34 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5411
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5412
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5413
_java_awt_Color_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5414
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5415
    <javanative: 'java/awt/Color' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5416
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5417
        "/ new with jdk1.2 ...
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5418
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5419
    "Created: / 28.1.1998 / 22:19:23 / cg"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5420
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  5421
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5422
_java_awt_Component_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5423
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5424
    <javanative: 'java/awt/Component' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5425
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5426
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5427
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5428
    "Created: / 27.1.1998 / 19:53:29 / cg"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5429
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5430
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5431
_java_awt_Container_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5432
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5433
    <javanative: 'java/awt/Container' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5434
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5435
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5436
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5437
    "Modified: / 12-08-2011 / 19:09:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5438
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5439
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5440
_java_awt_Cursor_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5441
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5442
    <javanative: 'java/awt/Cursor' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5443
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5444
    "Modified: / 09-02-2012 / 22:54:49 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5445
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5446
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5447
_java_awt_Dialog_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5448
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5449
    <javanative: 'java/awt/Dialog' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5450
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5451
    "Modified: / 09-02-2012 / 22:54:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5452
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5453
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5454
_java_awt_Dimension_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5455
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5456
    <javanative: 'java/awt/Dimension' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5457
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5458
    "Intentionally left blank"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5459
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5460
    "Modified: / 12-08-2011 / 19:08:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5461
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5462
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
  5463
_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
  5464
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5465
    <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
  5466
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5467
    "Modified: / 09-02-2012 / 22:53:11 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5468
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5469
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5470
_java_awt_FontMetrics_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5471
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5472
    <javanative: 'java/awt/FontMetrics' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5473
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
  5474
    ^ 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
  5475
!
59574ba88702 making eager resolving less eager - not calling classInit on each class (because then it does not boot :P)
hlopkmar
parents: 1246
diff changeset
  5476
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5477
_java_awt_Frame_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5478
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5479
    <javanative: 'java/awt/Frame' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5480
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5481
    "Modified: / 09-02-2012 / 22:53:52 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5482
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5483
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5484
_java_awt_Insets_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5485
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5486
    <javanative: 'java/awt/Insets' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5487
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5488
    "Modified: / 09-02-2012 / 22:54:54 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5489
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5490
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5491
_java_awt_KeyboardFocusManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5492
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5493
    <javanative: 'java/awt/KeyboardFocusManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5494
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5495
    "Modified: / 09-02-2012 / 22:55:04 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5496
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5497
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5498
_java_awt_MenuComponent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5499
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5500
    <javanative: 'java/awt/MenuComponent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5501
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5502
    "Modified: / 09-02-2012 / 22:53:22 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5503
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5504
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5505
_java_awt_MenuItem_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5506
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5507
    <javanative: 'java/awt/MenuItem' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5508
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5509
    "Modified: / 09-02-2012 / 22:54:40 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5510
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5511
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5512
_java_awt_Rectangle_initIDs: nativeContext
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5513
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5514
    <javanative: 'java/awt/Rectangle' name: 'initIDs()V'>
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5515
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5516
    "Intentionally left blank"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5517
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  5518
    "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
  5519
!
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  5520
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5521
_java_awt_Toolkit_initIDs: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5522
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5523
    <javanative: 'java/awt/Toolkit' name: 'initIDs'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5524
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5525
        "/ introduced with jdk1.2 ... (sigh)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5526
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5527
    "Created: / 27.1.1998 / 19:53:50 / cg"
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5528
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5529
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5530
_java_awt_Window_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5531
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5532
    <javanative: 'java/awt/Window' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5533
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5534
    "Modified: / 09-02-2012 / 22:53:47 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5535
! !
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
!JavaVM class methodsFor:'native - java.awt.event'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5538
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5539
_java_awt_event_InputEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5540
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5541
    <javanative: 'java/awt/event/InputEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5542
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5543
    "Modified: / 09-02-2012 / 22:53:27 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5544
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5545
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5546
_java_awt_event_KeyEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5547
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5548
    <javanative: 'java/awt/event/KeyEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5549
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5550
    "Modified: / 09-02-2012 / 22:53:33 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5551
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5552
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5553
_java_awt_event_MouseEvent_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5554
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5555
    <javanative: 'java/awt/event/MouseEvent' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5556
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  5557
    "Modified: / 09-02-2012 / 22:53:40 / mh <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5558
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  5559
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5560
!JavaVM class methodsFor:'native - java.io'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5561
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5562
_java_io_FileDescriptor_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5563
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5564
    <javanative: 'java/io/FileDescriptor' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5566
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5567
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5568
    "Created: / 27.1.1998 / 18:16:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5569
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5570
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5571
_java_io_FileDescriptor_set: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5572
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5573
    <javanative: 'java/io/FileDescriptor' name: 'set(I)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5574
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5575
    "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
  5576
     FD instead"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5577
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5578
    ^nativeContext argAt:1
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5579
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
  5580
    "Modified: / 18-08-2011 / 19:54:36 / jv"
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5581
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  5582
904
vranyj1
parents: 903
diff changeset
  5583
_java_io_FileDescriptor_sync: nativeContext
vranyj1
parents: 903
diff changeset
  5584
vranyj1
parents: 903
diff changeset
  5585
    <javanative: 'java/io/FileDescriptor' name: 'sync'>
vranyj1
parents: 903
diff changeset
  5586
    "
vranyj1
parents: 903
diff changeset
  5587
    /**
vranyj1
parents: 903
diff changeset
  5588
    * Force all system buffers to synchronize with the underlying
vranyj1
parents: 903
diff changeset
  5589
    * device.  This method returns after all modified data and
vranyj1
parents: 903
diff changeset
  5590
    * attributes of this FileDescriptor have been written to the
vranyj1
parents: 903
diff changeset
  5591
    * relevant device(s).  In particular, if this FileDescriptor
vranyj1
parents: 903
diff changeset
  5592
    * refers to a physical storage medium, such as a file in a file
vranyj1
parents: 903
diff changeset
  5593
    * system, sync will not return until all in-memory modified copies
vranyj1
parents: 903
diff changeset
  5594
    * of buffers associated with this FileDescriptor have been
vranyj1
parents: 903
diff changeset
  5595
    * written to the physical medium.
vranyj1
parents: 903
diff changeset
  5596
    *
vranyj1
parents: 903
diff changeset
  5597
    * sync is meant to be used by code that requires physical
vranyj1
parents: 903
diff changeset
  5598
    * storage (such as a file) to be in a known state  For
vranyj1
parents: 903
diff changeset
  5599
    * example, a class that provided a simple transaction facility
vranyj1
parents: 903
diff changeset
  5600
    * might use sync to ensure that all changes to a file caused
vranyj1
parents: 903
diff changeset
  5601
    * by a given transaction were recorded on a storage medium.
vranyj1
parents: 903
diff changeset
  5602
    *
vranyj1
parents: 903
diff changeset
  5603
    * sync only affects buffers downstream of this FileDescriptor.  If
vranyj1
parents: 903
diff changeset
  5604
    * any in-memory buffering is being done by the application (for
vranyj1
parents: 903
diff changeset
  5605
    * example, by a BufferedOutputStream object), those buffers must
vranyj1
parents: 903
diff changeset
  5606
    * be flushed into the FileDescriptor (for example, by invoking
vranyj1
parents: 903
diff changeset
  5607
    * OutputStream.flush) before that data will be affected by sync.
vranyj1
parents: 903
diff changeset
  5608
    *
vranyj1
parents: 903
diff changeset
  5609
    * @exception SyncFailedException
vranyj1
parents: 903
diff changeset
  5610
    *        Thrown when the buffers cannot be flushed,
vranyj1
parents: 903
diff changeset
  5611
    *        or because the system cannot guarantee that all the
vranyj1
parents: 903
diff changeset
  5612
    *        buffers have been synchronized with physical media.
vranyj1
parents: 903
diff changeset
  5613
    * @since     JDK1.1
vranyj1
parents: 903
diff changeset
  5614
    */
vranyj1
parents: 903
diff changeset
  5615
    public native void sync() throws SyncFailedException;
vranyj1
parents: 903
diff changeset
  5616
    "
vranyj1
parents: 903
diff changeset
  5617
vranyj1
parents: 903
diff changeset
  5618
    OpenFileTable do:[:stream|
vranyj1
parents: 903
diff changeset
  5619
        stream notNil ifTrue:[stream flush].
vranyj1
parents: 903
diff changeset
  5620
    ].
vranyj1
parents: 903
diff changeset
  5621
vranyj1
parents: 903
diff changeset
  5622
    "Created: / 12-11-1998 / 19:26:25 / cg"
vranyj1
parents: 903
diff changeset
  5623
    "Modified (format): / 10-08-2011 / 19:04:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 903
diff changeset
  5624
!
vranyj1
parents: 903
diff changeset
  5625
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5626
_java_io_FileInputStream_available: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5627
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5628
    <javanative: 'java/io/FileInputStream' name: 'available'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5629
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5630
        |file|
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5631
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5632
    file := self validateFile:(nativeContext receiver).
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5633
    file == Stdin ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5634
        file := StdinReplacementFileQuerySignal raiseRequest.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5635
        file isNil ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5636
            ^ 1
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5637
        ]
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5638
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5639
    file isFileStream ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5640
        ^ file size - file position + 1
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5641
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5642
    file atEnd ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5643
        ^ 0.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5644
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5645
    self halt.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5646
    ^ 1
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5647
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5648
    "Modified: / 14-01-1998 / 15:12:52 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
  5649
    "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
  5650
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5651
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5652
_java_io_FileInputStream_close0: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5653
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5654
    <javanative: 'java/io/FileInputStream' name: 'close0'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5655
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5656
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5657
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5658
    "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
  5659
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  5660
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5661
_java_io_FileInputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5662
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5663
    <javanative: 'java/io/FileInputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5664
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5665
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5666
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5667
    "Created: / 27.1.1998 / 18:15:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5668
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5669
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5670
_java_io_FileInputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5671
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5672
    <javanative: 'java/io/FileInputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5673
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5674
    |fs fd name stream fileNo|
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5675
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5676
    fs := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5677
    fd := fs instVarNamed:'fd'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5678
    (fileNo := fd instVarNamed:'fd') ~~ 0 ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5679
        fileNo ~~ -1 ifTrue:[
vranyj1
parents: 903
diff changeset
  5680
            self halt:'file already open'.
vranyj1
parents: 903
diff changeset
  5681
            self internalError:'file already open'.
vranyj1
parents: 903
diff changeset
  5682
            ^ self.
vranyj1
parents: 903
diff changeset
  5683
        ]
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5684
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5685
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5686
    name := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5687
    name := Java as_ST_String:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5688
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5689
    name := self fixFilename:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5690
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5691
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5692
        ('JAVA: opening ' , name) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5693
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5694
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5695
    stream := self fileStreamForReading:name.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5696
    stream isNil ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5697
        ^ self.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5698
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5699
    stream buffered:false.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5700
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5701
"/    FileOpenConfirmation ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5702
"/        (self confirm:('JAVA Security check\\Opening ''' , name , ''' for reading.\Grant permission ?') withCRs)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5703
"/        ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5704
"/            self throwIOExceptionWithMessage:('no permission to open ' , name , ' for reading').
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5705
"/            ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5706
"/        ]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5707
"/    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5708
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5709
    fileNo := self addOpenFile:stream.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5710
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5711
    FileOpenTrace ifTrue:[
904
vranyj1
parents: 903
diff changeset
  5712
        ('JAVA: opened ' , name , ' as FD ' , fileNo printString) infoPrintCR.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5713
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5714
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5715
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5716
    "Kludge for finalization..."
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5717
904
vranyj1
parents: 903
diff changeset
  5718
    "Created: / 04-01-1998 / 16:47:12 / cg"
vranyj1
parents: 903
diff changeset
  5719
    "Modified: / 28-01-1999 / 17:24:07 / cg"
1548
af9097580037 - JavaVM
vranyj1
parents: 1547
diff changeset
  5720
    "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
  5721
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5722
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5723
_java_io_FileInputStream_read: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5724
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5725
    <javanative: 'java/io/FileInputStream' name: 'read()I'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5726
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5727
        |file byte|
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5728
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5729
    file := self validateFile:(nativeContext receiver).
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5730
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5731
    file == Stdin ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5732
	file := StdinReplacementFileQuerySignal raiseRequest.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5733
	file isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5734
	    ^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5735
	]
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5736
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5737
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5738
    FileIOTrace ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5739
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5740
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5741
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5742
    byte := file nextByte.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5743
    byte isNil ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5744
	^ -1
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5745
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5746
    ^ byte
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5747
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5748
    "Created: / 5.1.1998 / 02:17:08 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5749
    "Modified: / 5.1.1998 / 02:17:25 / cg"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5750
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5751
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5752
_java_io_FileInputStream_readBytes: nativeContext
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5753
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5754
    <javanative: 'java/io/FileInputStream' name: 'readBytes'>
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5755
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5756
    ^ self anyStream_readBytes:nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5757
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5758
    "Modified: / 04-02-1998 / 15:23:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5759
    "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
  5760
!
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  5761
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5762
_java_io_FileInputStream_skip: nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5763
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5764
    <javanative: 'java/io/FileInputStream' name: 'skip(J)J'>
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5765
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5766
        "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5767
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5768
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5769
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5770
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5771
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5772
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5773
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5774
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5775
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5776
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5777
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5778
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5779
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5780
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5781
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5782
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5783
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5784
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5785
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5786
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5787
!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  5788
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5789
_java_io_FileOutputStream_close0: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5790
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5791
    <javanative: 'java/io/FileOutputStream' name: 'close0'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5792
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5793
    ^self commonClose: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5794
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5795
    "Modified: / 10-08-2011 / 14:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5796
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5797
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5798
_java_io_FileOutputStream_initIDs: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5799
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5800
    <javanative: 'java/io/FileOutputStream' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5801
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5802
        "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5803
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5804
    "Created: / 27.1.1998 / 18:16:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5805
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5806
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5807
_java_io_FileOutputStream_open: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5808
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5809
    <javanative: 'java/io/FileOutputStream' name: 'open'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5810
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5811
    ^ self commonOpen:nativeContext forAppend:false
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5812
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5813
    "Modified: / 07-04-1998 / 19:14:31 / cg"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5814
    "Modified (format): / 10-08-2011 / 14:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5815
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5816
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5817
_java_io_FileOutputStream_openAppend: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5818
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5819
    <javanative: 'java/io/FileOutputStream' name: 'openAppend'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5820
906
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5821
    ^ 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
  5822
fea23aa2b228 Few more fixes and workarounds for Saxon 6.5.5: the Othello example works fine...
vranyj1
parents: 905
diff changeset
  5823
    "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
  5824
    "Modified (format): / 10-08-2011 / 23:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5825
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  5826
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5827
_java_io_FileOutputStream_write: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5828
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5829
    <javanative: 'java/io/FileOutputStream' name: 'write'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5830
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5831
     /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5832
     * Writes the specified byte to this file output stream. Implements
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5833
     * the <code>write</code> method of <code>OutputStream</code>.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5834
     *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5835
     * @param      b   the byte to be written.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5836
     * @exception  IOException  if an I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5837
     */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5838
     public native void write(int b) throws IOException;
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5839
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5840
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5841
    | fdobj fd stream b |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5842
    b := nativeContext argAt:1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5843
    fdobj := (nativeContext receiver instVarNamed: #fd).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5844
    fd    := fdobj instVarNamed: #fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5845
    stream := self getOpenFileAt:fd.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5846
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5847
        stream nextPut: b asCharacter
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5848
    ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5849
        self throwIOExceptionWithMessage: ex description
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5850
    ]
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5851
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  5852
    "Modified: / 10-08-2011 / 14:15:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5853
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5854
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5855
_java_io_FileOutputStream_writeBytes: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5857
    <javanative: 'java/io/FileOutputStream' name: 'writeBytes'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5858
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5859
        ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5860
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5861
    "Modified: / 4.2.1998 / 15:24:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5862
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5863
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5864
_java_io_FileSystem_getFileSystem: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5865
    <javanative: 'java/io/FileSystem' name: 'getFileSystem'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5866
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5867
        ^ (self classForName: 'java.io.UnixFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5868
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5869
    OperatingSystem isMSWINDOWSlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5870
        ^ (Java classForName: 'java.io.WinNTFileSystem') new
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5871
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  5872
    self error: 'Unknown/Unsupported platform'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5873
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5874
    "Created: / 09-12-2010 / 17:58:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5875
    "Modified: / 01-04-2011 / 18:09:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5876
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5877
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5878
_java_io_ObjectInputStream_latestUserDefinedLoader: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5879
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5880
    <javanative: 'java/io/ObjectInputStream' name: 'latestUserDefinedLoader'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5881
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5882
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5883
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5884
    * Returns the first non-null class loader (not counting class loaders of
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5885
    * generated reflection implementation classes) up the execution stack, or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5886
    * null if only code from the null class loader is on the stack.  This
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5887
    * method is also called via reflection by the following RMI-IIOP class:
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5888
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5889
    *     com.sun.corba.se.internal.util.JDKClassLoader
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5890
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5891
    * This method should not be removed or its signature changed without
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5892
    * corresponding modifications to the above class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5893
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5894
    // REMIND: change name to something more accurate?
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5895
    private static native ClassLoader latestUserDefinedLoader();
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5896
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5897
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5898
    | ctx cl |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5899
    ctx := nativeContext.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5900
    [ ctx notNil ] whileTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5901
        ctx receiver isJavaObject ifTrue:[
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5902
            (cl := ctx receiver class classLoader) notNil ifTrue:[
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5903
                "/self breakPoint: #jv info: 'Should not count class loaders of generated reflection implementation classes'.
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5904
                "/Please check"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5905
                ^cl.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5906
            ]                    
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5907
        ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5908
        ctx := ctx sender.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5909
    ].
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5910
    ^nil
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5911
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
  5912
    "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
  5913
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5914
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5915
_java_io_ObjectStreamClass_hasStaticInitializer: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5916
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5917
    <javanative: 'java/io/ObjectStreamClass' name: 'hasStaticInitializer'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5918
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5919
    | cls |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5920
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5921
    ^(cls includesSelector: #'<clinit>()V') ifTrue:[1] ifFalse:[0]
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5922
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
  5923
    "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
  5924
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5925
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5926
_java_io_ObjectStreamClass_initNative: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5927
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5928
    <javanative: 'java/io/ObjectStreamClass' name: 'initNative'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5929
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5930
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5931
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5932
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5933
     * Initializes native code.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5934
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5935
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5936
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5937
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5938
    "Created: / 20-12-2010 / 17:43:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5939
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  5940
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5941
_java_io_RandomAccessFile_close0: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5942
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5943
    <javanative: 'java/io/RandomAccessFile' name: 'close0()V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5944
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5945
    ^ self commonClose:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5946
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5947
    "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
  5948
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5949
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5950
_java_io_RandomAccessFile_getFilePointer: nativeContext
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5951
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5952
    /**
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5953
     * Returns the current offset in this file.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5954
     *
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5955
     * @return     the offset from the beginning of the file, in bytes,
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5956
     *             at which the next read or write occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5957
     * @exception  IOException  if an I/O error occurs.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5958
     */
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5959
    "
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5960
    <javanative: 'java/io/RandomAccessFile' name: 'getFilePointer()J'>
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5961
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5962
    | file |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5963
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5964
    file := self validateFile:(nativeContext receiver).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5965
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5966
    FileIOTrace ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5967
        ('JAVA: getFilePointer on ' , file pathName) infoPrintCR.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5968
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5969
    ^file position0Based
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5970
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5971
    "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
  5972
!
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  5973
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5974
_java_io_RandomAccessFile_initIDs: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5975
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5976
    <javanative: 'java/io/RandomAccessFile' name: 'initIDs'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  5977
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5978
    "Nothing to do"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5979
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5980
    "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
  5981
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  5982
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5983
_java_io_RandomAccessFile_length: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5984
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5985
    <javanative: 'java/io/RandomAccessFile' name: 'length()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5986
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5987
        |file sz|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5988
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5989
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5990
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5991
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5992
	('JAVA: length of ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5993
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5994
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5995
    sz := file size.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5996
    ^ sz.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5997
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5998
    "Created: / 4.2.1998 / 13:27:58 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  5999
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6000
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6001
_java_io_RandomAccessFile_open: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6002
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6003
    <javanative: 'java/io/RandomAccessFile' name: 'open'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6004
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6005
    |fs fd nm mode filename dir stream fileNo answer readonly|
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6006
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6007
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6008
    fs := nativeContext receiver.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6009
    fd := fs instVarNamed:'fd'.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6010
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6011
        self halt:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6012
        self internalError:'file already open'.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6013
        ^ self.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6014
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6015
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6016
    nm := nativeContext argAt:1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6017
    nm := Java as_ST_String:nm.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6018
    nm := self fixFilename:nm.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6019
    mode := nativeContext argAt:2.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6020
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6021
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6022
    private static final int O_RDONLY = 1;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6023
    private static final int O_RDWR =   2;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6024
    private static final int O_SYNC =   4;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6025
    private static final int O_DSYNC =  8;
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6026
    "
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6027
    readonly := (mode bitAnd:1) == 1.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6028
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6029
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6030
        ('JAVA: opening ' , nm) infoPrintCR.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6031
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6032
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6033
    dir := (filename := nm utf8Encoded asFilename) directory pathName.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6034
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6035
    (PermittedDirectories notNil
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6036
    and:[PermittedDirectories includes:dir]) ifFalse:[
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6037
        FileOpenConfirmation ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6038
            answer := Dialog 
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6039
                    confirmWithCancel:('JAVA Security check\\Opening ''' , nm , ''' for read/write.\Grant permission ?') withCRs
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6040
                               labels:#('no' 'grant' 'readonly')
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6041
                               values:#(false true #readonly)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6042
                              default:3.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6043
            answer == false ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6044
                self throwIOExceptionWithMessage:('no permission to open ' , nm , ' for writing').
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6045
                ^ self
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6046
            ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6047
            readonly := (answer == #readonly).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6048
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6049
            readonly ifFalse:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6050
                (self confirm:('JAVA Security check\\Always permit writes in this directory (''' , dir , ''') ?') withCRs)
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6051
                ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6052
                    PermittedDirectories isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6053
                        PermittedDirectories := Set new
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6054
                    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6055
                    PermittedDirectories add:dir.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6056
                ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6057
            ]
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6058
        ]
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6059
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6060
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6061
    (filename exists not and:[readonly]) ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6062
        self throwIOExceptionWithMessage:'File ', nm , ' does not exist'
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6063
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6064
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6065
    readonly ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6066
        stream := self commonOpenStreamUsing:[filename readStream].
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6067
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6068
        stream := self commonOpenStreamUsing:[filename readWriteStream].
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6069
        stream isNil ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6070
            self throwIOExceptionWithMessage:('cannot open ' , nm , ' for writing').
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6071
        ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6072
    ].
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6073
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6074
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6075
    fileNo := self addOpenFile:stream.
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6076
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6077
    FileOpenTrace ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  6078
        ('JAVA: opened ' , nm , ' as FD ' , fileNo printString , ' for writing') infoPrintCR.
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6079
    ].
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6080
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6081
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6082
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  6083
    fs finalizationLobby registerChange: fs
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  6084
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6085
    "Created: / 04-02-1998 / 00:14:48 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6086
    "Modified: / 12-11-1998 / 21:29:46 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  6087
    "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
  6088
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6089
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6090
_java_io_RandomAccessFile_read: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6091
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6092
    <javanative: 'java/io/RandomAccessFile' name: 'read()I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6093
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6094
        |file byte|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6095
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6096
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6097
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6098
    FileIOTrace ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6099
	('JAVA: read 1 byte from ' , file pathName) infoPrintCR.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6100
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6101
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6102
    byte := file nextByte.
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6103
    byte isNil ifTrue:[
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6104
	^ -1
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6105
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6106
    ^ byte
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6107
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6108
    "Modified: / 5.1.1998 / 02:17:25 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6109
    "Created: / 27.1.1999 / 19:01:15 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6110
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6111
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6112
_java_io_RandomAccessFile_readBytes: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6113
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6114
    <javanative: 'java/io/RandomAccessFile' name: 'readBytes([BII)I'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6115
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6116
    ^ self anyStream_readBytes:nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6117
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6118
    "Modified: / 04-02-1998 / 15:23:27 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6119
    "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
  6120
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6121
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6122
_java_io_RandomAccessFile_seek: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6123
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6124
    <javanative: 'java/io/RandomAccessFile' name: 'seek(J)V'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6125
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6126
        |file pos|
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6127
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6128
    file := self validateFile:(nativeContext receiver).
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6129
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6130
    FileIOTrace ifTrue:[
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6131
        ('JAVA: seek on ' , file pathName) infoPrintCR.
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6132
    ].
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6133
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6134
    pos := nativeContext argAt:1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6135
    file position0Based:pos
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6136
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6137
    "Created: / 04-02-1998 / 13:25:38 / cg"
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6138
    "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
  6139
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6140
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6141
_java_io_RandomAccessFile_writeBytes: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6142
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6143
    <javanative: 'java/io/RandomAccessFile' name: 'writeBytes([BII)V'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6144
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6145
        ^ self anyStream_writeBytes:nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6146
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6147
    "Modified: / 4.2.1998 / 15:24:20 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6148
    "Created: / 4.2.1998 / 15:24:35 / cg"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6149
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  6150
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6151
_java_io_UnixFileSystem_canonicalize0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6152
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6153
    <javanative: 'java/io/UnixFileSystem' name: 'canonicalize0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6155
    |  path |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6157
    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
  6158
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6159
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6160
    "Created: / 10-12-2010 / 14:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6161
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6162
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6163
_java_io_UnixFileSystem_checkAccess: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6164
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6165
    <javanative: 'java/io/UnixFileSystem' name: 'checkAccess'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6166
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6167
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6168
     public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6169
     public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6170
     public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6171
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6172
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6173
    | fileobj file access result |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6174
    fileobj := nativeContext argAt:1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6175
    file := (Java as_ST_String:(fileobj instVarNamed:#path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6176
    access := nativeContext argAt:2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6177
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6178
        access == 16r01 ifTrue:[result := file isExecutable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6179
        access == 16r02 ifTrue:[result := file isWritable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6180
        access == 16r04 ifTrue:[result := file isReadable].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6181
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6182
        result := false.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6183
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6184
    ^result ifTrue:[1] ifFalse:[0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6185
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6186
    "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
  6187
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6188
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6189
_java_io_UnixFileSystem_createDirectory: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6190
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6191
    <javanative: 'java/io/UnixFileSystem' name: 'createDirectory'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6192
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6193
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6194
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6195
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6196
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6197
    file exists ifFalse:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6198
        [
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6199
            file recursiveMakeDirectory.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6200
            ^1.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6201
        ] on: Error do:[:ex|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6202
            self throwIOExceptionWithMessage:ex description.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6203
        ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6204
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6205
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6206
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6207
    "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
  6208
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6209
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6210
_java_io_UnixFileSystem_createFileExclusively: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6211
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6212
    <javanative: 'java/io/UnixFileSystem' name: 'createFileExclusively'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6213
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6214
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6215
    file := Java as_ST_String: (nativeContext argAt:1).
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6216
    file := file asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6217
    file exists ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6218
        [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6219
            file createAsEmptyFile
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6220
        ] on: Error do:[:ex|
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6221
            self throwIOExceptionWithMessage:ex description.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6222
        ].
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6223
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6224
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6225
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6226
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6227
    "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
  6228
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6229
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6230
_java_io_UnixFileSystem_delete0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6231
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6232
    <javanative: 'java/io/UnixFileSystem' name: 'delete0'>
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6233
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6234
      /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6235
      * Delete the file or directory denoted by the given abstract pathname,
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6236
      * returning <code>true</code> if and only if the operation succeeds.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6237
      */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6238
      public abstract boolean delete(File f);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6239
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6240
    | file |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6241
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6242
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6243
    file exists ifFalse:[^0].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6244
    ^[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6245
        file remove.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6246
        true
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6247
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6248
        false
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6249
    ]
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6250
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6251
    "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
  6252
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6253
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6254
_java_io_UnixFileSystem_getBooleanAttributes0: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6255
    <javanative: 'java/io/UnixFileSystem' name: 'getBooleanAttributes0'>
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6256
    | file  path  retval  fileSystemClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6257
    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
  6258
    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
  6259
    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
  6260
    fileSystemClass := (self classForName: 'java.io.FileSystem').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6261
    path asFilename exists ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6262
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_EXISTS')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6263
    ] ifFalse: [ ^ 0. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6264
    path asFilename isDirectory ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6265
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_DIRECTORY')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6266
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6267
    path asFilename isRegularFile ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6268
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_REGULAR')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6269
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6270
    path asFilename isHidden ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6271
        retval := retval bitOr: (fileSystemClass instVarNamed: #'BA_HIDDEN')
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6272
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6273
    ^ retval
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6274
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6275
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6276
    "Created: / 10-12-2010 / 14:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6277
    "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
  6278
    "Modified: / 03-11-2011 / 11:03:21 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6279
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6281
_java_io_UnixFileSystem_getLastModifiedTime: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6282
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6283
    <javanative: 'java/io/UnixFileSystem' name: 'getLastModifiedTime'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6284
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6285
    | file  filename  |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6286
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6287
    file := aJavaContext argAt: 1.
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6288
    filename := (Java as_ST_String: (file instVarNamed: #path)) utf8Encoded asFilename.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6289
    ^filename exists ifTrue:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6290
        filename modificationTime asMilliseconds
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6291
    ] ifFalse:[
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6292
        0
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6293
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6294
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6295
    "Modified: / 10-12-2010 / 14:43:31 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6296
    "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
  6297
    "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
  6298
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6299
898
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6300
_java_io_UnixFileSystem_getLength: nativeContext
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6301
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6302
    <javanative: 'java/io/UnixFileSystem' name: 'getLength'>
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6303
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6304
    | file |
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6305
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6306
    file := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6307
    file exists ifFalse:[^0].
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6308
    ^file fileSize
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6309
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6310
    "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
  6311
!
94eb1038a323 - add native to close InputFileStream
vranyj1
parents: 895
diff changeset
  6312
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6313
_java_io_UnixFileSystem_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6315
    <javanative: 'java/io/UnixFileSystem' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6317
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6318
    self breakPoint: #libjava
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6319
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6320
    "Created: / 10-12-2010 / 14:47:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6321
    "Modified: / 10-12-2010 / 20:58:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6322
!
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6323
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6324
_java_io_UnixFileSystem_list: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6325
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6326
    <javanative: 'java/io/UnixFileSystem' name: #'list(Ljava/io/File;)[Ljava/lang/String;'>
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6327
    "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6328
    /**
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6329
    * Returns an array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6330
    * directory denoted by this abstract pathname.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6331
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6332
    * <p> If this abstract pathname does not denote a directory, then this
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6333
    * method returns {@code null}.  Otherwise an array of strings is
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6334
    * returned, one for each file or directory in the directory.  Names
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6335
    * denoting the directory itself and the directory's parent directory are
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6336
    * not included in the result.  Each string is a file name rather than a
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6337
    * complete path.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6338
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6339
    * <p> There is no guarantee that the name strings in the resulting array
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6340
    * will appear in any specific order; they are not, in particular,
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6341
    * guaranteed to appear in alphabetical order.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6342
    *
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6343
    * @return  An array of strings naming the files and directories in the
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6344
    *          directory denoted by this abstract pathname.  The array will be
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6345
    *          empty if the directory is empty.  Returns {@code null} if
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6346
    *          this abstract pathname does not denote a directory, or if an
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6347
    *          I/O error occurs.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6348
    */
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6349
   "
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6350
    | fileobj file names jnames |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6351
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6352
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6353
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6354
    file exists ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6355
    file isDirectory ifFalse:[^nil].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6356
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6357
    names := file directoryContents.
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6358
    jnames := (Java at:'java.lang.String') javaArrayClass new: names size.
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6359
    1 to: names size do:[:i|
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6360
        jnames at: i put: (Java as_String:(names at: i))
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6361
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6362
    ^jnames
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6363
1546
1293d14946b6 - JavaVM
vranyj1
parents: 1545
diff changeset
  6364
    "Modified: / 23-07-2012 / 21:57:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6365
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6366
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6367
_java_io_UnixFileSystem_rename0: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6368
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6369
    <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
  6370
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6371
    | file1 file2 |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6372
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6373
    file1 := (Java as_ST_String: ((nativeContext argAt:1) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6374
    file2 := (Java as_ST_String: ((nativeContext argAt:2) instVarNamed: #path)) asFilename.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6375
    file1 exists ifFalse:[^0].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6376
    ^[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6377
        file1 moveTo: file2.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6378
        true
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6379
    ] on: Error do:[
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6380
        false
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6381
    ]
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6382
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6383
    "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
  6384
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
  6385
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6386
_java_io_UnixFileSystem_setLastModifiedTime: nativeContext
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6387
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6388
    <javanative: 'java/io/UnixFileSystem' name: 'setLastModifiedTime(Ljava/io/File;J)Z'>
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6389
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6390
    | f mtime file |
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6391
    f := nativeContext argAt: 1.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6392
    mtime := nativeContext argAt: 2.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6393
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6394
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6395
    self breakPoint: #jv. "There is no interface for that in St/X"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6396
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6397
    "Modified: / 05-12-2011 / 23:42:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6398
!
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  6399
899
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6400
_java_io_UnixFileSystem_setPermission: nativeContext
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6401
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6402
    <javanative: 'java/io/UnixFileSystem' name: 'setPermission'>
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6403
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6404
    /**
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6405
     * 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
  6406
     * or directory denoted by the given abstract pathname, based on the parameters
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6407
     * enable, access and oweronly.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6408
     */
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6409
    public abstract boolean setPermission(File f, int access, boolean enable, boolean owneronly);
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6410
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6411
    | f access enable owneronly file perms |
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6412
    f := nativeContext argAt: 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6413
    access := nativeContext argAt: 2.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6414
    enable := (nativeContext argAt: 3) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6415
    owneronly := (nativeContext argAt: 4) == 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6416
    file := (Java as_ST_String: (f instVarNamed: #path)) asFilename.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6417
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6418
    public static final int ACCESS_READ    = 0x04;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6419
    public static final int ACCESS_WRITE   = 0x02;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6420
    public static final int ACCESS_EXECUTE = 0x01;
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6421
    "
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6422
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6423
    access == 16r04 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6424
        perms := owneronly ifFalse:[#(readUser readGroup readOthers)] ifTrue:[#(readUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6425
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6426
    access == 16r02 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6427
        perms := owneronly ifFalse:[#(writeUser writeGroup writeOthers)] ifTrue:[#(writeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6428
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6429
    access == 16r01 ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6430
        perms := owneronly ifFalse:[#(executeUser executeGroup executeOthers)] ifTrue:[#(executeUser)].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6431
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6432
    [
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6433
        enable ifTrue:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6434
            file addAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6435
        ] ifFalse:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6436
            file removeAccessRights: perms
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6437
        ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6438
        ^ 1.
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6439
    ] on: Error do:[
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6440
        ^ 0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6441
    ].
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6442
    ^0
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6443
ac6820bae6ff - fixes in TestletTestCaseProxy
vranyj1
parents: 898
diff changeset
  6444
    "Modified: / 09-08-2011 / 17:18:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
901
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6445
!
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6446
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6447
_java_io_UnixFileSystem_setReadOnly: nativeContext
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6448
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6449
    <javanative: 'java/io/UnixFileSystem' name: 'setReadOnly'>
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6450
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6451
    | fileobj file |
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6452
    fileobj := (nativeContext argAt:1).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6453
    file := Java as_ST_String: (fileobj instVarNamed:#path).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6454
    file := file asFilename.
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6455
    file exists ifFalse:[^0].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6456
    [
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6457
        file  removeAccessRights: #(writeUser writeGroup writeOthers).
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6458
        ^1
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6459
    ] on: Error do:[
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6460
        ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6461
    ].
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6462
    ^0
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6463
64a889b68bef - JavaVM: more natives
vranyj1
parents: 900
diff changeset
  6464
    "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
  6465
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6466
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6467
_java_io_Win32FileSystem_initIDs: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6468
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6469
    <javanative: 'java/io/Win32FileSystem' name: 'initIDs()V'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6470
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6471
    "Intentionally left blank"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6472
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6473
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6474
_java_io_WinNTFileSystem_canonicalize0: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6475
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6476
    <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
  6477
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6478
    
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6479
    |  path |
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6480
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6481
    path := Java as_ST_String: (aJavaContext argAt: 1).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6482
    ^(Java as_String: path asFilename asAbsoluteFilename pathName)
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6483
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6484
    "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
  6485
!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6486
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6487
_java_io_WinNTFileSystem_canonicalizeWithPrefix0: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6488
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6489
    <javanative: 'java/io/WinNTFileSystem' name: 'canonicalizeWithPrefix0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6490
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6491
    |  path |
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6492
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6493
    path := Java as_ST_String: (nativeContext argAt: 2).
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6494
    ^(Java as_String: path utf8Encoded asFilename asAbsoluteFilename pathName utf8Decoded)
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6495
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6496
    "Modified: / 01-09-2011 / 21:50:47 / jv"
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6497
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6498
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6499
_java_io_WinNTFileSystem_checkAccess: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6500
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6501
    <javanative: 'java/io/WinNTFileSystem' name: 'checkAccess(Ljava/io/File;I)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6502
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6503
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6504
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6505
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6506
_java_io_WinNTFileSystem_createDirectory: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6507
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6508
    <javanative: 'java/io/WinNTFileSystem' name: 'createDirectory(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6509
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6510
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6511
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6512
920
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6513
_java_io_WinNTFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6514
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6515
    <javanative: 'java/io/WinNTFileSystem' name: 'createFileExclusively(Ljava/lang/String;)Z'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6516
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6517
    ^ self _java_io_UnixFileSystem_createFileExclusively: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6518
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6519
    "Modified: / 18-08-2011 / 17:26:11 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6520
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6521
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6522
_java_io_WinNTFileSystem_delete0: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6523
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6524
    <javanative: 'java/io/WinNTFileSystem' name: 'delete0(Ljava/io/File;)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6525
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6526
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6527
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  6528
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6529
_java_io_WinNTFileSystem_getBooleanAttributes: aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6530
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6531
    <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
  6532
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6533
    ^ self _java_io_UnixFileSystem_getBooleanAttributes0:aJavaContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6534
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
  6535
    "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
  6536
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6537
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6538
_java_io_WinNTFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6539
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6540
    <javanative: 'java/io/WinNTFileSystem' name: 'getLastModifiedTime(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6541
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6542
    ^ self _java_io_UnixFileSystem_getLastModifiedTime: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6543
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6544
    "Modified: / 18-08-2011 / 14:12:07 / jv"
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6545
!
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6546
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6547
_java_io_WinNTFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6548
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6549
    <javanative: 'java/io/WinNTFileSystem' name: 'getLength(Ljava/io/File;)J'>
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6550
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6551
    ^ self _java_io_UnixFileSystem_getLength: nativeContext
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6552
e6e8a96b217c Fixes for Groovy and Saxon
vranyj1
parents: 919
diff changeset
  6553
    "Modified: / 18-08-2011 / 14:15:36 / jv"
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6554
!
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6555
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6556
_java_io_WinNTFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6557
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6558
    <javanative: 'java/io/WinNTFileSystem' name: 'list(Ljava/io/File;)[Ljava/lang/String;'>
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6559
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6560
    ^ self _java_io_UnixFileSystem_list: nativeContext
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6561
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
  6562
    "Modified: / 01-09-2011 / 21:46:37 / jv"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6563
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
  6564
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6565
!JavaVM class methodsFor:'native - java.lang'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6566
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6567
_java_lang_ClassLoader_NativeLibrary_load: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6568
    <javanative: 'java/lang/ClassLoader$NativeLibrary' name: 'load'>
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6569
    "/ introduced with jdk1.2 ... (sigh)
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6570
    
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6571
    | nativeLoader  jLibName  libName  libHandle  index |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
  6572
  
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6573
    nativeLoader := nativeContext receiver.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6574
    jLibName := nativeContext argAt: 1.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6575
    libName := (Java as_ST_String: jLibName) asFilename baseName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6576
    (index := SimulatedNativeLibs indexOf: libName) ~~ 0 ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6577
        "/        ('JAVA: builtIn nativeLibLoad simulated: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6578
        nativeLoader instVarNamed: 'handle' put: index.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6579
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6580
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6581
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6582
    (LoadedNativeLibs notNil and: [ LoadedNativeLibs includesKey: libName ]) ifTrue: [
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6583
        "/        ('JAVA: native library already loaded: ' , libName) printNL.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6584
        nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6585
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6586
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6587
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6588
    (self confirm: 'permission to load native library: ' , libName , ' ?') ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6589
        ^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6590
    ].
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6591
    self halt.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6592
    libName asFilename exists ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6593
        ('JAVA: no file to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6594
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6595
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6596
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6597
    libHandle := ObjectFileLoader loadLibrary: libName.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6598
    libHandle isNil ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6599
        ('JAVA: failed to load nativeLib: ' , libName) printNL.
1079
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6600
        ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6601
        "/ void
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6602
    ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6603
    LoadedNativeLibs isNil ifTrue: [ LoadedNativeLibs := Dictionary new. ].
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6604
    LoadedNativeLibs at: libName put: libHandle.
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6605
    nativeLoader instVarNamed: 'handle' put: (LoadedNativeLibs at: libName).
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6606
    ^ self
0bab665c1e54 simulating libmanagement.so for tomcat
hlopkmar
parents: 1078
diff changeset
  6607
    "/ void
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6608
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6609
    "Modified: / 06-02-1998 / 03:12:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6610
    "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
  6611
    "Modified: / 03-11-2011 / 18:25:08 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6612
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6613
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
  6614
_java_lang_ClassLoader_defineClass1: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6615
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6616
    "
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
  6617
     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
  6618
                                      ProtectionDomain pd, String source);"
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6619
    
5badd1d31864 introduced JavaClassRegistry, taken loading responsibilities from JavaClassReader, got rid of stringConstants and started using StringRefs.. Bugs very likely :)
hlopkmar
parents: 1024
diff changeset
  6620
    | 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
  6621
    className := Java as_ST_String: (nativeContext argAt: 1).
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6622
    "if name starts with java.* or package is signed by something else and we are not signed, throw security exception" 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6623
    "ClassLoadersTest>>testEyeOpeningClassLoaderLoadObject" 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6624
    "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
  6625
    (className startsWith: 'java.') ifTrue: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6626
        self throwSecurityExceptionWith: 'className=' , className
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6627
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6628
    cls := nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6629
    b := nativeContext argAt: 2.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6630
    off := nativeContext argAt: 3.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6631
    len := nativeContext argAt: 4.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6632
    pd := nativeContext argAt: 5.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6633
    source := Java as_ST_String: (nativeContext argAt: 6).
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6634
    bs := (off = 0 and: [ len = b size ]) 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6635
        ifTrue: [ b readStream ] 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6636
        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
  6637
    [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6638
        JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6639
            do: [ cls := JavaClassReader readStream: bs. ]
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6640
    ] on: JavaClassReader invalidClassFormatSignal
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6641
            do: [
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6642
        :ex | 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6643
        self throwClassFormatError: ex description.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6644
        ^ nil.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6645
    ].
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6646
    self assert: cls classLoader == nativeContext receiver.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6647
     "FIXME: What to do with source?"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6648
    self registry registerClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6649
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6650
        do: [ cls resolveAll. ]."
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6651
    ^ self reflection javaClassObjectForClass: cls.
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6652
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6653
    "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
  6654
    "Modified: / 20-02-2012 / 23:14:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6655
!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6656
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6657
_java_lang_ClassLoader_defineClass1_OLD: nativeContext 
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6658
    <javanative: 'java/lang/ClassLoader' name: 'defineClass1'>
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6659
    "
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6660
     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
  6661
                                      ProtectionDomain pd, String source);"
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6662
    
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
  6663
    | 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
  6664
    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
  6665
     "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
  6666
    (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
  6667
        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
  6668
    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6669
    cls := ClassRegistry 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6670
                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
  6671
                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
  6672
                ifAbsentPut: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6673
                    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
  6674
                    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
  6675
                    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
  6676
                    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
  6677
                    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
  6678
                    (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
  6679
                        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
  6680
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6681
                    [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6682
                        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
  6683
                            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
  6684
                    ] 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
  6685
                            do: [
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6686
                        :ex | 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6687
                        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
  6688
                        ^ nil.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6689
                    ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6690
                    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
  6691
                     "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
  6692
                    cls.
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6693
                ].
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6694
    "JavaClassReader classLoaderQuerySignal answer: nativeContext receiver
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6695
        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
  6696
    ^ self reflection javaClassObjectForClass: cls.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6697
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6698
    "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
  6699
    "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
  6700
    "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
  6701
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6702
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6703
_java_lang_ClassLoader_findBootstrapClass: nativeContext 
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6704
    <javanative: 'java/lang/ClassLoader' name: 'findBootstrapClass'>
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6705
    "Return class loaded by bootstrap (primordial) classloader or null.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6706
     See OpenJDK, file src/jdk7/hostspot/src/share/vm/prims/jvm.cpp"
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6707
    
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6708
    | nm  class |
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6709
    nm := Java as_ST_String: (nativeContext 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
  6710
    class := ClassRegistry 
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6711
                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
  6712
                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
  6713
                ifAbsentPut: [ class := JavaVM usePrimordialCLToLoadClassNamed: nm. ].
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6714
         
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6715
    ^ class notNil 
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  6716
        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
  6717
        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
  6718
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6719
    "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
  6720
    "Modified: / 02-11-2011 / 20:13:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6721
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6722
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6723
_java_lang_ClassLoader_findLoadedClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6724
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6725
    <javanative: 'java/lang/ClassLoader' name: 'findLoadedClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6726
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6727
    "
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6728
    Return java class object for class with given name
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6729
    loaded by the receiver or null if not found.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6730
    See OpenJDK:
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6731
        src/jdk7/hostspot/src/share/vm/classfile/systemDictionary.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6732
        src/jdk7/hostspot/src/share/vm/prims/jvm.cpp
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6733
        
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6734
    "        
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6735
    | nm class |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6736
    nm := Java as_ST_String: (nativeContext argAt:1).
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6737
    class := ClassRegistry classNamed: nm asSlashedJavaClassName loader: nativeContext receiver.
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6738
    
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
  6739
    ^class notNil ifTrue: [
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6740
        self reflection javaClassObjectForClass:class
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6741
    ] ifFalse:[
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6742
        nil
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6743
    ]
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  6744
1062
69aac7194016 Fixes in classloaders to make Groovy running (again)
vranyj1
parents: 1060
diff changeset
  6745
    "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
  6746
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6747
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6748
_java_lang_ClassLoader_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6749
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6750
    <javanative: 'java/lang/ClassLoader' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6751
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6752
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6753
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6754
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6755
    "Created: / 09-11-2010 / 20:55:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6756
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6757
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
  6758
_java_lang_ClassLoader_resolveClass0: nativeContext 
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6759
    <javanative: 'java/lang/ClassLoader' name: 'resolveClass0'>
1000
cfa982260238 Lot of debug/info prints rewritten to use Logger
vranyj1
parents: 998
diff changeset
  6760
    "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
  6761
    "or to be more precise - link class"
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6762
    
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6763
    | jClassLoader  jCls  cls |
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6764
    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
  6765
    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
  6766
    jCls isNil ifTrue: [
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6767
        self throwNullPointerException.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6768
        ^ nil
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6769
    ].
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
  6770
    cls := self reflection classForJavaClassObject: jCls.
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6771
    self assert: cls notNil.
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  6772
    JavaClassReader classLoaderQuerySignal answer: jClassLoader
1269
c85f7de00e06 JavaVM: fix in initializeSystemProperties: (for ia32 machines)
vranyj1
parents: 1268
diff changeset
  6773
     do: [ "cls resolveAll." ].
1150
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6774
    ^ cls.
c583252c8df9 deleted not valid logging
hlopkmar
parents: 1149
diff changeset
  6775
1135
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6776
    "
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6777
        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
  6778
        * 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
  6779
        * 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
  6780
        * 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
  6781
        * 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
  6782
        * Specification</a>.
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6783
        * </p>
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6784
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6785
        * @param  c
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6786
        *         The class to link
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6787
        *
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6788
        * @throws  NullPointerException
79bdd1501934 java.lang.ClassLoader>>resolveClass0 native method now resolves whole constant pool
hlopkmar
parents: 1131
diff changeset
  6789
         *          If <tt>c</tt> is <tt>null</tt>."
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6790
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6791
    "Created: / 07-01-1998 / 13:12:27 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6792
    "Modified: / 20-10-1998 / 19:01:57 / cg"
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6793
    "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
  6794
    "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
  6795
    "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
  6796
!
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
  6797
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6798
_java_lang_ClassLoader_retrieveDirectives: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6799
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6800
    <javanative: 'java/lang/ClassLoader' name: 'retrieveDirectives()Ljava/lang/AssertionStatusDirectives;'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6801
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6802
    | directives |
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6803
    directives := (self classForName:'java.lang.AssertionStatusDirectives') new.
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6804
    directives instVarNamed:#classes
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6805
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6806
    directives instVarNamed:#classEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6807
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6808
    directives instVarNamed:#packages
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6809
        put: ((self classForName:'java.lang.String') javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6810
    directives instVarNamed:#packageEnabled
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6811
        put: (Boolean javaArrayClass new:0).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6812
    directives instVarNamed:#deflt 
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6813
        put: ((AssertionsEnabled == true) ifTrue:[1] ifFalse:[0]).
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6814
    ^directives
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6815
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
  6816
    "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
  6817
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  6818
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6819
_java_lang_Class_desiredAssertionStatus0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6821
    <javanative: 'java/lang/Class' name: 'desiredAssertionStatus0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6822
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6823
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6824
    ^AssertionsEnabled == true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6825
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6826
    "Created: / 24-11-2010 / 08:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6827
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6828
1205
vranyj1
parents: 1204
diff changeset
  6829
_java_lang_Class_forName0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6830
    <javanative: 'java/lang/Class' name: 'forName0'>
1205
vranyj1
parents: 1204
diff changeset
  6831
    |nm initialize loader class descriptor|
vranyj1
parents: 1204
diff changeset
  6832
vranyj1
parents: 1204
diff changeset
  6833
    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
  6834
     "Using Class.forName() to get a primitive type is not allowed"
1205
vranyj1
parents: 1204
diff changeset
  6835
    (nm size == 1 and:[JavaDescriptor baseTypes includesKey:nm first]) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6836
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  6837
    ].
vranyj1
parents: 1204
diff changeset
  6838
    (JavaDescriptor baseTypesByTypeName includesKey:nm) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6839
        ^ self throwClassNotFoundException:nm.
vranyj1
parents: 1204
diff changeset
  6840
    ].
vranyj1
parents: 1204
diff changeset
  6841
    initialize := aJavaContext argAt:2.
vranyj1
parents: 1204
diff changeset
  6842
    loader := aJavaContext argAt:3.
vranyj1
parents: 1204
diff changeset
  6843
    JavaClassReader classLoaderQuerySignal answer:loader do:[
vranyj1
parents: 1204
diff changeset
  6844
        (nm first == $[) ifTrue:[
vranyj1
parents: 1204
diff changeset
  6845
            |nms|
vranyj1
parents: 1204
diff changeset
  6846
vranyj1
parents: 1204
diff changeset
  6847
            nms := nm readStream.
vranyj1
parents: 1204
diff changeset
  6848
            descriptor := JavaDescriptor readFrom:nms
vranyj1
parents: 1204
diff changeset
  6849
                        onError:[^ self throwClassNotFoundException:nm].
vranyj1
parents: 1204
diff changeset
  6850
            nms atEnd ifFalse:[
vranyj1
parents: 1204
diff changeset
  6851
                ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  6852
            ].
vranyj1
parents: 1204
diff changeset
  6853
            class := descriptor javaClass.
vranyj1
parents: 1204
diff changeset
  6854
        ] ifFalse:[
vranyj1
parents: 1204
diff changeset
  6855
            class := self classForName:nm
vranyj1
parents: 1204
diff changeset
  6856
        ]
vranyj1
parents: 1204
diff changeset
  6857
    ].
vranyj1
parents: 1204
diff changeset
  6858
    class isNil ifTrue:[
vranyj1
parents: 1204
diff changeset
  6859
        ^ self throwClassNotFoundException:nm
vranyj1
parents: 1204
diff changeset
  6860
    ].
1073
e842ab17fe16 quite big class loaders rewrite.. javavm/groovy boots, almost all tests pass.. hope you will like it..
hlopkmar
parents: 1070
diff changeset
  6861
    ((initialize ~~ 0) 
1205
vranyj1
parents: 1204
diff changeset
  6862
        and:[class isJavaArrayClass not and:[class isJavaPrimitiveType not]]) 
vranyj1
parents: 1204
diff changeset
  6863
            ifTrue:[
vranyj1
parents: 1204
diff changeset
  6864
                [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
  6865
            ].
1205
vranyj1
parents: 1204
diff changeset
  6866
    ^ JavaVM javaClassObjectForClass:class.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6867
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6868
    "Created: / 24-11-2010 / 09:03:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
vranyj1
parents: 1062
diff changeset
  6869
    "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
  6870
    "Modified: / 02-11-2011 / 19:12:43 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1205
vranyj1
parents: 1204
diff changeset
  6871
    "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
  6872
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6873
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6874
_java_lang_Class_getClassLoader0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6875
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6876
    <javanative: 'java/lang/Class' name: 'getClassLoader0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6877
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6878
    "get a classes loader"
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6879
    
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6880
    |jClass cls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6881
    jClass := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6882
    cls := self reflection classForJavaClassObject:jClass.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6883
    ^cls javaMirror getClassLoader
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6884
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6885
    "Created: / 25-10-2010 / 22:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6886
    "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
  6887
    "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
  6888
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6889
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6890
_java_lang_Class_getComponentType: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6891
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6892
    <javanative: 'java/lang/Class' name: 'getComponentType'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6893
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6894
        |cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6895
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6896
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6897
    cls isJavaPrimitiveType ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6898
        self breakPoint:#jv.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6899
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6900
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6901
    ^ self javaClassObjectForClass:cls javaComponentClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6902
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6903
    "Created: / 12-11-1998 / 18:54:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6904
    "Modified: / 20-12-2010 / 22:56:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6905
    "Modified: / 28-01-2011 / 15:18:59 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6906
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6907
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6908
_java_lang_Class_getConstantPool: 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/Class' name: 'getConstantPool'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6911
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6912
        | class |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6914
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  6915
    class isJavaClass ifFalse:[
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6916
        ^nil    
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
  6917
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  6918
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6919
    ^ self reflection javaConstantPoolObjectFor:class constantPool.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6920
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6921
    "Created: / 21-12-2010 / 20:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6922
    "Modified: / 28-02-2011 / 18:05:13 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  6923
    "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
  6924
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6925
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6926
_java_lang_Class_getDeclaredClasses0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6927
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6928
    <javanative: 'java/lang/Class' name: 'getDeclaredClasses0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6929
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6930
    | class innerPrefix inners |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6931
    class := self reflection classForJavaClassObject: nativeContext receiver.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6932
    innerPrefix := class name , '$'.                
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6933
    inners := Set new.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6934
    JAVA allClassesDo:[:cls|
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  6935
        ((cls name startsWith: innerPrefix) and:[(cls name indexOf: $$ startingAt: innerPrefix size) == 0]) ifTrue:[
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6936
            inners add: (self reflection javaClassObjectForClass: cls)
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6937
        ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6938
    ].
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6939
    ^(Java at: 'java.lang.Class') javaArrayClass withAll: inners
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
  6940
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
  6941
    "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
  6942
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  6943
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6944
_java_lang_Class_getDeclaredConstructors0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6945
    <javanative: 'java/lang/Class' name: 'getDeclaredConstructors0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6946
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6947
    | class publicOnly |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6948
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6949
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6950
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6951
    ^class javaMirror getDeclaredConstructors: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6952
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6953
    "Created: / 24-11-2010 / 09:25:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6954
    "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
  6955
    "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
  6956
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6957
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6958
_java_lang_Class_getDeclaredFields0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6959
    <javanative: 'java/lang/Class' name: 'getDeclaredFields0'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6960
    |javaClassObject class fields publicOnly|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6961
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6962
    class := self reflection 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6963
                classForJavaClassObject:(javaClassObject := aJavaContext argAt:0).
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6964
    (class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6965
        ^(self classForName:'java.lang.reflect.Field') javaArrayClass new:0.
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6966
    ].
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  6967
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6968
    publicOnly := (aJavaContext argAt:1) == 1.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  6969
    fields := class javaMirror getDeclaredFields: publicOnly.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  6970
    ^fields
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6971
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6972
    "Created: / 10-11-2010 / 16:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6973
    "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
  6974
    "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
  6975
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6976
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6977
_java_lang_Class_getDeclaredMethods0:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6978
    <javanative: 'java/lang/Class' name: 'getDeclaredMethods0'>
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6979
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6980
    | class publicOnly |
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6981
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6982
    class := self reflection classForJavaClassObject:(aJavaContext receiver).
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  6983
    publicOnly := (aJavaContext argAt:1) == 1.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
  6984
    ^class javaMirror getDeclaredMethods: publicOnly.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6985
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6986
    "Created: / 21-12-2010 / 22:39:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6987
    "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
  6988
    "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
  6989
    "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
  6990
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  6991
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  6992
_java_lang_Class_getDeclaringClass: nativeContext 
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6993
    <javanative: 'java/lang/Class' name: 'getDeclaringClass'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6994
    "
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6995
     /**
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  6996
     * 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
  6997
     * 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
  6998
     * 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
  6999
     * 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
  7000
     * 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
  7001
     * type, or void,then this method returns null.
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7002
     *
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7003
     * @return the declaring class for this class
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7004
     * @since JDK1.1
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7005
     */"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7006
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7007
    | cls  enclosingClsName  enclosingCls |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7008
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7009
    cls := self reflection classForJavaClassObject: (nativeContext receiver).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7010
    (cls isJavaPrimitiveType or: [ cls isJavaArrayClass ]) ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7011
    (cls name includes: $$) ifFalse: [ ^ nil ].
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7012
    enclosingClsName := cls name copyTo: (cls name lastIndexOf: $$) - 1.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7013
    enclosingCls := self classForName: enclosingClsName.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7014
    enclosingCls isNil ifTrue: [ self error: 'Cannot fins declaring class' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  7015
    ^ self reflection javaClassObjectForClass: enclosingCls
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7016
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7017
    "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
  7018
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7019
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7020
_java_lang_Class_getEnclosingMethod0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7021
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7022
    <javanative: 'java/lang/Class' name: 'getEnclosingMethod0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7023
914
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7024
    ^nil "/Not true"
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7025
0331f83c542a Fixes for invoke0 native
vranyj1
parents: 913
diff changeset
  7026
    "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
  7027
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7028
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7029
_java_lang_Class_getGenericSignature: nativeContext
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7030
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7031
    <javanative: 'java/lang/Class' name: 'getGenericSignature'>
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7032
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7033
    |cls sig |
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7034
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7035
    cls := self reflection classForJavaClassObject:(nativeContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7036
    sig := cls javaMirror getGenericSignature.
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7037
    ^sig notNil ifTrue:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7038
        Java as_String: sig
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7039
    ] ifFalse:[
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7040
        nil
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7041
    ]
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7042
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7043
    "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
  7044
!
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7045
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7046
_java_lang_Class_getInterfaces:nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7047
    <javanative: 'java/lang/Class' name: 'getInterfaces'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7048
    |jClass cls interfaces jInterfaces|
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7049
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7050
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7051
    cls := self reflection classForJavaClassObject:jClass.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7052
    interfaces := cls javaMirror getInterfaces.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7053
    jInterfaces := (self classForName:'java.lang.Class') javaArrayClass new:interfaces size.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7054
    interfaces 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  7055
        withIndexDo:[:iface :idx | jInterfaces at:idx put:(self javaClassObjectForClass:iface) ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7056
    ^ jInterfaces
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7057
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7058
    "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
  7059
    "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
  7060
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7061
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7062
_java_lang_Class_getModifiers: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7063
    <javanative: 'java/lang/Class' name: 'getModifiers'>
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7064
    | cls |
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
  7065
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7066
    cls := (self reflection classForJavaClassObject: aJavaContext receiver).
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7067
    ^cls javaMirror getModifiers
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7069
    "Created: / 12-11-1998 / 18:54:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7070
    "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
  7071
    "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
  7072
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7073
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7074
_java_lang_Class_getName0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7075
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7076
    <javanative: 'java/lang/Class' name: 'getName0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7078
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7079
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7080
    class := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7081
    class := self reflection classForJavaClassObject:aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7082
    ^ self reflection 
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
  7083
        javaStringObjectForString:class javaMirror getName
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7084
        interned:true.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7086
    "Created: / 22-11-2010 / 17:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7087
    "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
  7088
    "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
  7089
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7090
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7091
_java_lang_Class_getPrimitiveClass: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7093
    <javanative: 'java/lang/Class' name: 'getPrimitiveClass'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7094
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7095
        "get a primitive class by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7096
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7097
    |jClassName className|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7099
    jClassName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7100
    className := Java as_ST_String:jClassName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7101
    (JavaDescriptor baseTypesByTypeName keys includes: className)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7102
        ifFalse:[self throwClassNotFoundException:className].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7103
    ^self reflection javaClassObjectForClassNamed: className
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7104
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7105
    "Created: / 04-01-1998 / 00:46:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7106
    "Modified: / 28-01-2011 / 15:30:45 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7107
    "Modified: / 03-02-2011 / 21:43:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7108
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7109
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7110
_java_lang_Class_getProtectionDomain0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7111
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7112
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7113
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7114
    ^(self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7115
        protectionDomain
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7116
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7117
    "Modified: / 10-08-2011 / 15:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7118
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7119
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7120
_java_lang_Class_getRawAnnotations: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7121
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7122
    <javanative: 'java/lang/Class' name: 'getRawAnnotations'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7123
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7124
    |class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7125
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7126
    class := self reflection classForJavaClassObject:aJavaContext receiver.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7127
    class isJavaArrayClass ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7128
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7129
    ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7130
    class isJavaPrimitiveType ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7131
        ^nil
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  7132
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7133
    class isJavaClass ifFalse:[
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7134
        ^nil.
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7135
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7136
    ^ class runtimeVisibleAnnotationsAsBytesOrNil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7138
    "Created: / 21-12-2010 / 19:35:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7139
    "Modified: / 28-01-2011 / 15:19:20 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7140
    "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
  7141
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7142
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7143
_java_lang_Class_getSuperclass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7144
    <javanative: 'java/lang/Class' name: 'getSuperclass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7145
    "return a classes superclass"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7146
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7147
    | jClass  cls  superCls |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7149
    jClass := nativeContext receiver.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7150
    cls := self reflection classForJavaClassObject: jClass.
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7151
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7152
    cls isJavaPrimitiveType ifTrue: [ ^ nil ].
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7153
    cls isJavaArrayClass ifTrue: [
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7154
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7155
    ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7156
    cls == Object ifTrue: [
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7157
        ^ self javaClassObjectForClass: (Java at: 'java.lang.Object')
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7158
    ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7159
    cls isInterface ifTrue: [ ^ nil ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7160
    superCls := cls superclass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7161
    superCls == JavaObject ifTrue: [ ^ nil. ].
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7162
    superCls ==     Object ifTrue: [ ^ nil ]. "/for Java
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7163
    ^ self javaClassObjectForClass: superCls
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7165
    "Created: / 12-01-1998 / 12:38:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7166
    "Modified: / 04-02-1998 / 14:51:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7167
    "Modified: / 28-01-2011 / 14:12:47 / Marcel Hlopko <hlopik@gmail.com>"
1576
d2ce64ae3414 - JavaVM
vranyj1
parents: 1572
diff changeset
  7168
    "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
  7169
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7171
_java_lang_Class_isArray: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7173
    <javanative: 'java/lang/Class' name: 'isArray'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7174
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7175
        ^ (self reflection classForJavaClassObject:nativeContext receiver) isJavaArrayClass 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7176
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7177
        ifFalse:[0]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7178
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7179
    "Created: / 12-11-1998 / 18:54:24 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7180
    "Modified: / 20-12-2010 / 23:20:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7181
    "Modified: / 28-01-2011 / 15:19:24 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7182
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7184
_java_lang_Class_isAssignableFrom: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7186
    <javanative: 'java/lang/Class' name: 'isAssignableFrom'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7187
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7188
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7189
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7190
     * Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7191
     * {@code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7192
     * superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7193
     * {@code Class} parameter. It returns {@code true} if so;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7194
     * otherwise it returns {@code false}. If this {@code Class}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7195
     * object represents a primitive type, this method returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7196
     * {@code true} if the specified {@code Class} parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7197
     * exactly this {@code Class} object; otherwise it returns
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7198
     * {@code false}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7199
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7200
     * <p> Specifically, this method tests whether the type represented by the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7201
     * specified {@code Class} parameter can be converted to the type
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7202
     * represented by this {@code Class} object via an identity conversion
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7203
     * or via a widening reference conversion. See <em>The Java Language
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7204
     * Specification</em>, sections 5.1.1 and 5.1.4 , for details.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7205
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7206
     * @param cls the {@code Class} object to be checked
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7207
     * @return the {@code boolean} value indicating whether objects of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7208
     * type {@code cls} can be assigned to objects of this class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7209
     * @exception NullPointerException if the specified Class parameter is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7210
     *            null.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7211
     * @since JDK1.1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7212
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7213
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7214
    | clsObj me other |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7215
    clsObj := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7216
    clsObj ifNil:[^self throwNullPointerException].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7217
    me := self reflection classForJavaClassObject: nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7218
    other := self reflection classForJavaClassObject: clsObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7219
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7220
    "/    Determines if the class or interface represented by this
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7221
    "/    @code Class} object is either the same as, or is a superclass or
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7222
    "/    superinterface of, the class or interface represented by the specified
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7223
    "/    {@code Class} parameter.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7225
    ^(other includesBehavior: me)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7226
        ifTrue:[1]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7227
        ifFalse:[0]
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:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7230
    "Modified: / 05-02-2011 / 23:38:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7231
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7232
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7233
_java_lang_Class_isInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7234
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7235
    <javanative: 'java/lang/Class' name: 'isInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7236
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7237
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7238
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7239
     * Determines if the specified {@code Object} is assignment-compatible
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7240
     * with the object represented by this {@code Class}.  This method is
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7241
     * the dynamic equivalent of the Java language {@code instanceof}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7242
     * operator. The method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7243
     * {@code Object} argument is non-null and can be cast to the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7244
     * reference type represented by this {@code Class} object without
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7245
     * raising a {@code ClassCastException.} It returns {@code false}
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7246
     * otherwise.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7247
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7248
     * <p> Specifically, if this {@code Class} object represents a
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7249
     * declared class, this method returns {@code true} if the specified
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7250
     * {@code Object} argument is an instance of the represented class (or
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7251
     * of any of its subclasses); it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7252
     * this {@code Class} object represents an array class, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7253
     * returns {@code true} if the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7254
     * can be converted to an object of the array class by an identity
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7255
     * conversion or by a widening reference conversion; it returns
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7256
     * {@code false} otherwise. If this {@code Class} object
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7257
     * represents an interface, this method returns {@code true} if the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7258
     * class or any superclass of the specified {@code Object} argument
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7259
     * implements this interface; it returns {@code false} otherwise. If
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7260
     * this {@code Class} object represents a primitive type, this method
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7261
     * returns {@code false}.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7262
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7263
     * @param   obj the object to check
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7264
     * @return  true if {@code obj} is an instance of this class
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7265
     *
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7266
     * @since JDK1.1
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7267
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7268
    public native boolean isInstance(Object obj);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7269
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7270
    
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7271
    |jClass cls obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7272
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7273
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7274
    obj isNil ifTrue:[^ 0].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7275
    jClass := nativeContext receiver.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7276
    cls := self reflection classForJavaClassObject:jClass.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7277
    ^self _INSTANCEOF:obj _:cls
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7278
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7279
    "Modified: / 09-02-1998 / 14:56:23 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7280
    "Modified: / 28-01-2011 / 14:12:42 / Marcel Hlopko <hlopik@gmail.com>"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7281
    "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
  7282
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7283
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7284
_java_lang_Class_isInterface: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7286
    <javanative: 'java/lang/Class' name: 'isInterface'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7288
        "return true, if this class is an interface"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7289
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7290
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7291
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7292
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7293
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7294
    cls isJavaClass ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7295
        ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7296
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7297
    cls isInterface ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7298
        ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7299
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7300
    ^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7301
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7302
    "Created: / 12-01-1998 / 12:37:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7303
    "Modified: / 28-01-2011 / 14:12:35 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7304
    "Modified: / 03-02-2011 / 21:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7305
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7306
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7307
_java_lang_Class_isPrimitive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7308
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7309
    <javanative: 'java/lang/Class' name: 'isPrimitive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7310
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7311
        "return true, if this class is builtin primitive class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7312
     (i.e. byteArray, array, string etc."
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7313
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7314
    |jClass cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7315
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7316
    jClass := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7317
    cls := self reflection classForJavaClassObject:jClass. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7318
    ^cls isJavaPrimitiveType 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7319
        ifTrue:[1"true"]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7320
        ifFalse:[0"false"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7321
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7322
    "Created: / 09-02-1998 / 14:46:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7323
    "Modified: / 28-01-2011 / 14:12:30 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7324
    "Modified: / 04-02-2011 / 11:56:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7325
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7326
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7327
_java_lang_Class_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7329
    <javanative: 'java/lang/Class' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7330
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7331
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7332
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7334
    "Created: / 20-10-2010 / 11:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7335
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7336
903
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7337
_java_lang_Class_setProtectionDomain0: nativeContext
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7338
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7339
    <javanative: 'java/lang/Class' name: 'getProtectionDomain0'>
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7340
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7341
    (self reflection classForJavaClassObject: nativeContext receiver)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7342
        protectionDomain: (nativeContext argAt:1)
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7343
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7344
    "Created: / 10-08-2011 / 15:20:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7345
!
0c989d6972bc TestletTestCaseProxy: refactored
vranyj1
parents: 901
diff changeset
  7346
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7347
_java_lang_Compiler_disable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7348
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7349
    <javanative: 'java/lang/Compiler' name: 'disable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7350
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7351
    "Modified: / 09-02-2012 / 22:56:44 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7352
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7354
_java_lang_Compiler_enable: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7355
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7356
    <javanative: 'java/lang/Compiler' name: 'enable()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7357
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7358
    "Modified: / 09-02-2012 / 22:57:15 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7359
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7360
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7361
_java_lang_Compiler_registerNatives: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7362
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7363
    <javanative: 'java/lang/Compiler' name: 'registerNatives()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7364
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7365
    "Modified: / 09-02-2012 / 22:56:37 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7366
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
  7367
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7368
_java_lang_Double_doubleToRawLongBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7370
    <javanative: 'java/lang/Double' name: 'doubleToRawLongBits'>
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
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7374
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7375
     * according to the IEEE 754 floating-point 'double
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7376
     * format' bit layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7377
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7378
     * <p>Bit 63 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7379
     * {@code 0x8000000000000000L}) represents the sign of the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7380
     * floating-point number. Bits
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7381
     * 62-52 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7382
     * {@code 0x7ff0000000000000L}) represent the exponent. Bits 51-0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7383
     * (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7384
     * {@code 0x000fffffffffffffL}) represent the significand
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7385
     * (sometimes called the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7386
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7387
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7388
     * {@code 0x7ff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7389
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7390
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7391
     * {@code 0xfff0000000000000L}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7392
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7393
     * <p>If the argument is NaN, the result is the {@code long}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7394
     * integer representing the actual NaN value.  Unlike the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7395
     * {@code doubleToLongBits} method,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7396
     * {@code doubleToRawLongBits} does not collapse all the bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7397
     * patterns encoding a NaN to a single 'canonical' NaN
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7398
     * value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7399
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7400
     * <p>In all cases, the result is a {@code long} integer that,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7401
     * when given to the {@link #longBitsToDouble(long)} method, will
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7402
     * produce a floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7403
     * {@code doubleToRawLongBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7404
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7405
     * @param   value   a {@code double} precision floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7406
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7407
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7408
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7409
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7410
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7411
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7412
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7413
    (f = -0.0) ifTrue:[^(1 bitShift: 63)].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7414
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7415
    b := ByteArray streamContents:[:s|Float storeBinaryIEEEDouble:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7416
    ^ LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7418
    "Created: / 10-11-2010 / 14:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7419
    "Modified: / 07-08-2011 / 21:43:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7420
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7421
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7422
_java_lang_Double_longBitsToDouble: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7423
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7424
    <javanative: 'java/lang/Double' name: 'longBitsToDouble'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7425
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7426
        |i aFloat|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7427
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7428
    i := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7429
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7430
    aFloat := Float new.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7431
    UninterpretedBytes isBigEndian ifTrue:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7432
	aFloat basicAt:1 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7433
	aFloat basicAt:2 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7434
	aFloat basicAt:3 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7435
	aFloat basicAt:4 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7436
	aFloat basicAt:5 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7437
	aFloat basicAt:6 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7438
	aFloat basicAt:7 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7439
	aFloat basicAt:8 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7440
    ] ifFalse:[
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7441
	aFloat basicAt:1 put:(i bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7442
	aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7443
	aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7444
	aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7445
	aFloat basicAt:5 put:((i bitShift:-32) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7446
	aFloat basicAt:6 put:((i bitShift:-40) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7447
	aFloat basicAt:7 put:((i bitShift:-48) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7448
	aFloat basicAt:8 put:((i bitShift:-56) bitAnd:16rFF).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7449
    ].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7450
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7451
    ^ aFloat.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7452
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7453
    "Created: / 4.1.1998 / 01:45:00 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7454
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7456
_java_lang_Float_floatToRawIntBits: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7458
    <javanative: 'java/lang/Float' name: 'floatToRawIntBits'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7459
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7460
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7461
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7462
     * Returns a representation of the specified floating-point value
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7463
     * according to the IEEE 754 floating-point 'single format' bit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7464
     * layout, preserving Not-a-Number (NaN) values.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7465
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7466
     * <p>Bit 31 (the bit that is selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7467
     * {@code 0x80000000}) represents the sign of the floating-point
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7468
     * number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7469
     * Bits 30-23 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7470
     * {@code 0x7f800000}) represent the exponent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7471
     * Bits 22-0 (the bits that are selected by the mask
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7472
     * {@code 0x007fffff}) represent the significand (sometimes called
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7473
     * the mantissa) of the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7474
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7475
     * <p>If the argument is positive infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7476
     * {@code 0x7f800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7477
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7478
     * <p>If the argument is negative infinity, the result is
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7479
     * {@code 0xff800000}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7480
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7481
     * <p>If the argument is NaN, the result is the integer representing
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7482
     * the actual NaN value.  Unlike the {@code floatToIntBits}
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7483
     * method, {@code floatToRawIntBits} does not collapse all the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7484
     * bit patterns encoding a NaN to a single 'canonical'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7485
     * NaN value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7486
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7487
     * <p>In all cases, the result is an integer that, when given to the
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7488
     * {@link #intBitsToFloat(int)} method, will produce a
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7489
     * floating-point value the same as the argument to
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7490
     * {@code floatToRawIntBits}.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7491
     *
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7492
     * @param   value   a floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7493
     * @return the bits that represent the floating-point number.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7494
     * @since 1.3
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7495
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7496
    "
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7497
    | f b |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7498
    f := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7499
    (f =  0.0) ifTrue:[^0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7500
    (f = -0.0) ifTrue:[^(1 bitShift: 31) ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7501
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7502
    b := ByteArray streamContents:[:s|ShortFloat storeBinaryIEEESingle:f on:s].
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7503
    ^ (LargeInteger digitBytes: b MSB: UninterpretedBytes isBigEndian not) compressed
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7505
    "Created: / 09-11-2010 / 20:59:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  7506
    "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
  7507
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7508
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7509
_java_lang_Float_intBitsToFloat: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7510
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7511
    <javanative: 'java/lang/Float' name: 'intBitsToFloat(I)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7512
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7513
    |i aFloat|
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7514
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7515
    i := nativeContext argAt:1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7516
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7517
    aFloat := ShortFloat basicNew.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7518
    UninterpretedBytes isBigEndian ifTrue:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7519
        aFloat basicAt:1 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7520
        aFloat basicAt:2 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7521
        aFloat basicAt:3 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7522
        aFloat basicAt:4 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7523
    ] ifFalse:[
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7524
        aFloat basicAt:1 put:(i bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7525
        aFloat basicAt:2 put:((i bitShift:-8) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7526
        aFloat basicAt:3 put:((i bitShift:-16) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7527
        aFloat basicAt:4 put:((i bitShift:-24) bitAnd:16rFF).
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7528
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7529
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7530
    ^ aFloat.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7531
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7532
    "Modified: / 13-09-2011 / 20:05:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7533
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7534
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7535
_java_lang_Object_clone: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7536
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7537
    <javanative: 'java/lang/Object' name: 'clone'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7539
        "clone an object"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7540
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7541
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7542
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7543
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7544
    rslt := o shallowCopy.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7545
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7546
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7547
    "Created: / 4.1.1998 / 19:39:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7548
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7549
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7550
_java_lang_Object_getClass: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7551
    <javanative: 'java/lang/Object' name: 'getClass'>
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7552
    "return an objects class"
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7553
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7554
    | o  cls  jClass |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7556
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7557
    cls := o class.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
  7558
    jClass := self javaClassObjectForClass: cls.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7559
    ^ jClass
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7560
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7561
    "Created: / 6.1.1998 / 18:28:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7562
    "Modified: / 23.1.1998 / 17:48:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7563
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7564
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7565
_java_lang_Object_hashCode: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7566
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7567
    <javanative: 'java/lang/Object' name: 'hashCode'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7568
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7569
        "identityHash"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7570
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7571
    |o rslt|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7573
    o := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7574
    rslt := o identityHash.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7575
    ^ rslt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7577
    "Created: / 4.1.1998 / 19:40:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7578
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7579
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7580
_java_lang_Object_notify: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7581
    <javanative: 'java/lang/Object' name: 'notify'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7582
    "wakeup"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7583
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7584
    self notify: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7585
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7586
    "Created: / 06-01-1998 / 21:09:26 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7587
    "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
  7588
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7589
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7590
_java_lang_Object_notifyAll: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7591
    <javanative: 'java/lang/Object' name: 'notifyAll'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7592
    self notifyAll: (nativeContext receiver).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7593
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7594
    "Created: / 03-01-1998 / 03:06:56 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7595
    "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
  7596
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7597
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7598
_java_lang_Object_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7599
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7600
    <javanative: 'java/lang/Object' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7601
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7602
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7603
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7604
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7605
    "Created: / 19-10-2010 / 12:42:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7606
    "Modified: / 20-10-2010 / 10:57:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7607
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7608
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7609
_java_lang_Object_wait: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7610
    <javanative: 'java/lang/Object' name: 'wait'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7611
    | tmo  handle |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7612
    handle := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7613
    tmo := nativeContext argAt: 1.    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7614
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7615
            waitOn: handle forTimeout: tmo
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7616
            state: #javaWait.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7617
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7618
    "Modified: / 30-12-1998 / 19:20:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7619
    "Modified: / 01-05-2011 / 13:26:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  7620
    "Modified: / 22-11-2011 / 13:17:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7621
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7622
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7623
_java_lang_Package_getSystemPackage0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7624
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7625
    <javanative: 'java/lang/Package' name: 'getSystemPackage0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7626
909
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7627
    "Based on code on OpenJDK, it is ok to return nil here:"
4b1bac2cccfb One more native
vranyj1
parents: 908
diff changeset
  7628
1612
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7629
    | syspkg syspkg_s |
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7630
    syspkg := nativeContext argAt: 1.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7631
    syspkg isNil ifTrue:[ ^ nil ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7632
    syspkg_s := Java as_ST_String: syspkg.
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7633
    ^(ClassRegistry systemPackage: syspkg_s) notNil ifTrue:[
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7634
        syspkg        
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7635
    ] ifFalse:[
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7636
        nil
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7637
    ].
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7638
ba527b3b17aa - fixes for Package.getPackage()
vranyj1
parents: 1611
diff changeset
  7639
    "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
  7640
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7641
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7642
_java_lang_ProcessEnvironment_environ: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7643
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7644
    <javanative: 'java/lang/ProcessEnvironment' name: 'environ'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7645
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7646
    | env jenv i|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7647
    env := OperatingSystem getEnvironment.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7648
    jenv :=  ByteArray javaArrayClass new: env size * 2.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7649
    i := 1.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7650
    env keysAndValuesDo:
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7651
        [:name :value|
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7652
        jenv 
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7653
            at: i   put: name  asByteArray;
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7654
            at: i+1 put: value asByteArray.
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7655
        i := i + 2].
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7656
    ^jenv
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7657
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  7658
    "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
  7659
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7660
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7661
_java_lang_ProcessEnvironment_environmentBlock: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7662
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7663
    <javanative: 'java/lang/ProcessEnvironment' name: 'environmentBlock()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7664
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7665
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7666
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7667
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7668
_java_lang_Runtime_freeMemory: nativeContext
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7669
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7670
    <javanative: 'java/lang/Runtime' name: 'freeMemory()J'>
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7671
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7672
        "free memory - Returns the number of free bytes"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7673
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7674
    ^ ObjectMemory freeListSpace + ObjectMemory freeSpace
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7675
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7676
    "Created: / 12.1.1998 / 12:59:53 / cg"
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7677
!
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
  7678
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7679
_java_lang_Runtime_gc: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7680
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7681
    <javanative: 'java/lang/Runtime' name: 'gc'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7682
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7683
        "Runs the garbage collector.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7684
     Ignored, since the ST-gc runs all the time."
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7685
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7686
    ^ self
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7687
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7688
    "Modified: / 12.1.1998 / 12:58:32 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7689
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7690
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7691
_java_lang_Runtime_runFinalization0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7692
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7693
    <javanative: 'java/lang/Runtime' name: 'runFinalization0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7694
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7695
    Smalltalk garbageCollect
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7696
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7697
    "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
  7698
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7699
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7700
_java_lang_SecurityManager_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7701
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7702
    <javanative: 'java/lang/SecurityManager' name: 'getClassContext'>
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7703
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7704
    /**
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7705
     * Returns the current execution stack as an array of classes.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7706
     * <p>
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7707
     * The length of the array is the number of methods on the execution
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7708
     * stack. The element at index <code>0</code> is the class of the
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7709
     * currently executing method, the element at index <code>1</code> is
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7710
     * the class of that method's caller, and so on.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7711
     *
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7712
     * @return  the execution stack.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7713
     */
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7714
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7715
    "
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7716
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7717
    | classes ctx jclasses |
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7718
    classes := OrderedCollection new.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7719
    ctx := thisContext.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7720
    [ ctx notNil ] whileTrue: [
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7721
        ctx isJavaContext ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7722
            classes add: ctx method javaClass.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7723
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7724
        ctx := ctx sender.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7725
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7726
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7727
    jclasses := (self classForName:'java.lang.Class') javaArrayClass new: classes size.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7728
    1 to: classes size do:[:i|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7729
        jclasses at: i put: (self reflection javaClassObjectForClass: (classes at: i)).
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7730
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7731
    ^jclasses
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7732
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  7733
    "Created: / 12-11-1998 / 18:56:06 / cg"
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  7734
    "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
  7735
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7736
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7737
_java_lang_Shutdown_halt0: nativeContext
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7738
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7739
    <javanative: 'java/lang/Shutdown' name: 'halt0'>
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7740
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7741
    AbortOperationRequest raise
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  7742
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
  7743
    "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
  7744
!
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
  7745
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7746
_java_lang_StrictMath_cbrt: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7747
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7748
    <javanative: 'java/lang/StrictMath' name: 'cbrt'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7749
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7750
    ^ JavaMathSupport cbrt: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7751
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7752
    "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
  7753
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7754
1639
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7755
_java_lang_StrictMath_ceil: nativeContext
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7756
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7757
    <javanative: 'java/lang/StrictMath' name: 'ceil(D)D'>
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7758
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7759
    ^ (nativeContext argAt:1) ceiling
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7760
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7761
    "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
  7762
!
1397423bcd97 Better error reporting in Groovy workspace
vranyj1
parents: 1635
diff changeset
  7763
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7764
_java_lang_StrictMath_cos: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7765
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7766
    <javanative: 'java/lang/StrictMath' name: 'cos'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7767
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7768
    ^ JavaMathSupport cos: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7769
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7770
    "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
  7771
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7772
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7773
_java_lang_StrictMath_cosh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7774
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7775
    <javanative: 'java/lang/StrictMath' name: 'cosh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7776
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7777
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7778
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7779
     * Returns the hyperbolic cosine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7780
     * The hyperbolic cosine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7781
     * (<i>e<sup>x</sup>&nbsp;+&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7782
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7783
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7784
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7785
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7786
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7787
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7788
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7789
     * <li>If the argument is infinite, then the result is positive
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7790
     * infinity.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7791
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7792
     * <li>If the argument is zero, then the result is {@code 1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7793
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7794
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7795
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7796
     * @param   x The number whose hyperbolic cosine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7797
     * @return  The hyperbolic cosine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7798
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7799
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7800
    public static native double cosh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7801
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7802
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7803
    ^JavaMathSupport cosh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7804
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7805
    "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
  7806
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7807
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7808
_java_lang_StrictMath_expm1: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7809
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7810
    <javanative: 'java/lang/StrictMath' name: 'expm1'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7811
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7812
    ^ JavaMathSupport expm1: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7813
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7814
    "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
  7815
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7816
895
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7817
_java_lang_StrictMath_floor: nativeContext
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7818
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7819
    <javanative: 'java/lang/StrictMath' name: 'floor'>
ddeff39cfdb9 TestletProxy refactored
vranyj1
parents: 892
diff changeset
  7820
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7821
   ^ JavaMathSupport floor: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7822
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7823
    "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
  7824
!
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7825
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7826
_java_lang_StrictMath_pow: nativeContext
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7827
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7828
    <javanative: 'java/lang/StrictMath' name: 'pow(DD)D'>
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7829
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7830
    ^JavaMathSupport pow: (nativeContext argAt:1) to: (nativeContext argAt:3)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7831
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7832
    "Modified: / 07-09-2011 / 17:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7833
!
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7834
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7835
_java_lang_StrictMath_sin: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7836
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7837
    <javanative: 'java/lang/StrictMath' name: 'cos'>
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7838
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7839
    ^ JavaMathSupport sin: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7840
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7841
    "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
  7842
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  7843
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7844
_java_lang_StrictMath_sinh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7845
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7846
    <javanative: 'java/lang/StrictMath' name: 'sinh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7847
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7848
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7849
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7850
     * Returns the hyperbolic sine of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7851
     * The hyperbolic sine of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7852
     * (<i>e<sup>x</sup>&nbsp;-&nbsp;e<sup>-x</sup></i>)/2
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7853
     * where <i>e</i> is {@linkplain Math#E Euler's number}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7854
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7855
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7856
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7857
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7858
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7859
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7860
     * <li>If the argument is infinite, then the result is an infinity
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7861
     * with the same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7862
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7863
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7864
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7865
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7866
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7867
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7868
     * @param   x The number whose hyperbolic sine is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7869
     * @return  The hyperbolic sine of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7870
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7871
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7872
    public static native double sinh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7873
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7874
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7875
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7876
    ^ JavaMathSupport sinh: (nativeContext argAt:1)
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7877
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7878
    "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
  7879
    "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
  7880
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7881
1527
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7882
_java_lang_StrictMath_sqrt: nativeContext
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7883
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7884
    <javanative: 'java/lang/StrictMath' name: 'sqrt(D)D'>
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7885
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7886
    ^(nativeContext argAt:1) sqrt
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7887
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7888
    "Modified: / 17-07-2012 / 20:53:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7889
!
c12b45a59659 - JavaClass
vranyj1
parents: 1525
diff changeset
  7890
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7891
_java_lang_StrictMath_tan: nativeContext
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7892
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7893
    <javanative: 'java/lang/StrictMath' name: 'tan(D)D'>
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7894
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7895
    ^ UnimplementedNativeMethodSignal raise
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7896
!
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
  7897
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7898
_java_lang_StrictMath_tanh: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7899
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7900
    <javanative: 'java/lang/StrictMath' name: 'tanh'>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7901
    "
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7902
    /**
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7903
     * Returns the hyperbolic tangent of a {@code double} value.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7904
     * The hyperbolic tangent of <i>x</i> is defined to be
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7905
     * (<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
  7906
     * in other words, {@linkplain Math#sinh
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7907
     * sinh(<i>x</i>)}/{@linkplain Math#cosh cosh(<i>x</i>)}.  Note
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7908
     * that the absolute value of the exact tanh is always less than
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7909
     * 1.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7910
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7911
     * <p>Special cases:
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7912
     * <ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7913
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7914
     * <li>If the argument is NaN, then the result is NaN.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7915
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7916
     * <li>If the argument is zero, then the result is a zero with the
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7917
     * same sign as the argument.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7918
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7919
     * <li>If the argument is positive infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7920
     * {@code +1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7921
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7922
     * <li>If the argument is negative infinity, then the result is
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7923
     * {@code -1.0}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7924
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7925
     * </ul>
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7926
     *
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7927
     * @param   x The number whose hyperbolic tangent is to be returned.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7928
     * @return  The hyperbolic tangent of {@code x}.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7929
     * @since 1.5
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7930
     */
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7931
    public static native double tanh(double x);
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  7932
    "
892
d09b90bc4998 Few more primitives
vranyj1
parents: 888
diff changeset
  7933
988
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7934
    ^ JavaMathSupport tanh: (nativeContext argAt:1)
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7935
414a2c9a6a9e Java-style FP math natives and support methods
vranyj1
parents: 985
diff changeset
  7936
    "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
  7937
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  7938
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7939
_java_lang_String_intern: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7940
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7941
    <javanative: 'java/lang/String' name: 'intern'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7943
        |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7945
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7946
    ^ Java intern:jString
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7947
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7948
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7949
_java_lang_System_arraycopy: nativeContext
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7950
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  7951
    <javanative: 'java/lang/System' name: 'arraycopy'>
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7952
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7953
    |srcArray srcIdx dstArray dstIdx srcArrayCC dstArrayCC count dstEndIdx|
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7954
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7955
    srcArray := nativeContext argAt:1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7956
    srcArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7957
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7958
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7959
    srcArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7960
        ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7961
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7962
    srcIdx := nativeContext argAt:2.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7963
    dstArray := nativeContext argAt:3.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7964
    dstArray isNil ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7965
        ^ self throwNullPointerException
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7966
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7967
    dstArray isJavaArray ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7968
        ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7969
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7970
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  7971
    srcArrayCC := srcArray class javaComponentClass.
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  7972
    dstArrayCC := dstArray class javaComponentClass.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7973
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7974
    srcArrayCC isJavaPrimitiveType == dstArrayCC isJavaPrimitiveType 
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7975
        ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7976
            [srcArrayCC isJavaPrimitiveType
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7977
                ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7978
                    [srcArrayCC ~~ dstArrayCC ifTrue:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7979
                        [^ self throwArrayStoreException:dstArray]].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7980
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7981
        ifFalse:
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7982
            [^ self throwArrayStoreException:dstArray].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7983
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7984
    dstIdx := nativeContext argAt:4.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7985
    count := nativeContext argAt:5.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7986
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7987
    count < 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7988
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)        
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7989
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7990
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7991
    ((srcIdx < 0) or:[srcIdx + count > srcArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7992
        srcArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7993
            srcArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7994
                ^ self throwArrayStoreException:srcArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7995
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7996
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7997
        ^ self throwArrayIndexOutOfBoundsException:(srcIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7998
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  7999
    ((dstIdx < 0) or:[dstIdx + count > dstArray size]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8000
        dstArray size == 0 ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8001
            dstArray isVariable ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8002
                ^ self throwArrayStoreException:dstArray
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8003
            ]
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8004
        ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8005
        ^ self throwArrayIndexOutOfBoundsException:(dstIdx + count - 1)
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8006
    ].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8007
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8008
    dstEndIdx := dstIdx + count.
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8009
    dstIdx := dstIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8010
    srcIdx := srcIdx + 1.       "/ ST uses 1-based indexing
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8011
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8012
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8013
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8014
    (srcArray class isBytes and:[dstArray class isBytes]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8015
        dstArray replaceBytesFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8016
    ] ifFalse:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8017
        dstArrayCC isJavaPrimitiveType ifFalse:[
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8018
            "Copy from array iff src=dst to avoid overwriting a data when copying"
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8019
            srcArray == dstArray ifTrue:[srcArray := srcArray copy].
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8020
            1 to: count do:[:i|
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8021
                | obj |
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8022
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8023
                obj := srcArray at:srcIdx + i - 1.
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8024
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8025
                (obj notNil and:[(self canCast: obj class to: dstArrayCC) not]) ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8026
                    ^ self throwArrayStoreException:dstArray
1173
5eefc8f414bd thread>>name mauve test passes
hlopkmar
parents: 1170
diff changeset
  8027
                ].
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8028
                dstArray at: dstIdx + i - 1 put: (srcArray at:srcIdx + i - 1)
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8029
            ]
1377
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8030
        ] ifTrue:[
79eafebce880 Fixes...
vranyj1
parents: 1374
diff changeset
  8031
            dstArray replaceFrom:dstIdx to:dstEndIdx with:srcArray startingAt:srcIdx.
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
  8032
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8033
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8034
    ^ nil.
864
45d54ed8b273 JavaVM: improvements in java.lang.System.arraycopy native
vranyj1
parents: 859
diff changeset
  8035
992
6d3e3d937fda Class loader mess cleanup, more will come later...
vranyj1
parents: 988
diff changeset
  8036
    "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
  8037
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8039
_java_lang_System_currentTimeMillis: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8041
    <javanative: 'java/lang/System' name: 'currentTimeMillis'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8042
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8043
    "return the milliseconds since 1.jan.1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8044
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8045
    "Should be OK, see Timestamp>>getMilliseconds & Timestamp>>getSeconds & Timestamp>>utcSecondsSince1970"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8046
    ^ Timestamp now getMilliseconds
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8048
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8049
     JavaVM _System_currentTimeMillis:nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8050
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8051
1531
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8052
    "Modified: / 23-12-1998 / 21:54:50 / cg"
537ea64da291 - JavaVM
vranyj1
parents: 1528
diff changeset
  8053
    "Modified: / 19-07-2012 / 11:44:56 / jv"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8054
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8055
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8056
_java_lang_System_identityHashCode: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8057
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8058
    <javanative: 'java/lang/System' name: 'identityHashCode'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8059
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8060
        |obj|
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8061
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8062
    obj := nativeContext argAt:1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8063
    ^ obj identityHash
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8064
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8065
    "Modified: / 12.11.1998 / 18:52:07 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8066
    "Created: / 12.11.1998 / 18:54:00 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8067
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8068
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8069
_java_lang_System_initProperties: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8070
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8071
    <javanative: 'java/lang/System' name: 'initProperties'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8072
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8073
        |props stProps|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8074
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8075
    props := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8076
    stProps := self systemProperties.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8078
    "/ recursively invoke myself on the Java HashTable.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8079
    "/ calling 'put' to stuff in the values ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8081
    stProps keysAndValuesDo:[:key :value |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8082
	|keyObj valueObj|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8083
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8084
	keyObj := Java as_String:key.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8085
	valueObj := Java as_String:value.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8086
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8087
	props 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8088
	    perform:#'put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8089
	    with:keyObj 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8090
	    with:valueObj.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8091
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8092
    ^ props
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8093
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8094
    "Created: / 3.1.1998 / 14:25:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8095
    "Modified: / 4.1.1998 / 14:23:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8096
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8097
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8098
_java_lang_System_mapLibraryName: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8099
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8100
    <javanative: 'java/lang/System' name: 'mapLibraryName'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8101
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8102
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8103
    | name |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8104
    name := Java as_ST_String: (aJavaContext argAt: 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8105
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8106
    OperatingSystem isUNIXlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8107
        ^Java as_String: ('lib' , name , '.so').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8108
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8109
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8110
    OperatingSystem isMSWINDOWSlike ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8111
        ^Java as_String: ( name , '.dll').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8112
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8113
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8114
    self error:'Unknown/Unsupported platform'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8115
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8116
    "Created: / 09-12-2010 / 18:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8117
    "Modified: / 01-04-2011 / 18:14:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8118
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8119
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8120
_java_lang_System_nanoTime: nativeContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8121
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8122
    <javanative: 'java/lang/System' name: 'nanoTime'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8123
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8124
    ^ OperatingSystem getMicrosecondTime * 1000
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8125
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8126
    "Modified: / 07-08-2011 / 21:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8127
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  8128
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8129
_java_lang_System_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8130
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8131
    <javanative: 'java/lang/System' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8132
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8133
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8134
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8135
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8136
    "Created: / 20-10-2010 / 10:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8137
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8138
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8139
_java_lang_System_setErr0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8140
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8141
    <javanative: 'java/lang/System' name: 'setErr0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8143
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8144
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8145
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8146
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8147
    self setOpenFile:(self javaConsoleStream ? Stderr) at:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8148
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8149
    nativeContext receiver instVarNamed:'err' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8150
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8151
    "Created: / 18.3.1997 / 15:02:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8152
    "Modified: / 4.1.1998 / 16:21:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8153
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8154
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8155
_java_lang_System_setIn0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8157
    <javanative: 'java/lang/System' name: 'setIn0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8159
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8161
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8162
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8163
    self setOpenFile:Stdin at:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8165
    nativeContext receiver instVarNamed:'in' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8166
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8167
    "Created: / 4.1.1998 / 16:16:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8168
    "Modified: / 4.1.1998 / 16:20:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8169
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8171
_java_lang_System_setOut0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8173
    <javanative: 'java/lang/System' name: 'setOut0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8174
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8175
        |stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8176
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8177
    stream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8178
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8179
    self setOpenFile:(self javaConsoleStream ? Stdout) at:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8180
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8181
    nativeContext receiver instVarNamed:'out' put:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8182
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8183
    "Created: / 4.1.1998 / 16:18:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8184
    "Modified: / 4.1.1998 / 16:20:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8185
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8186
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8187
_java_lang_Thread_currentThread: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8188
    <javanative: 'java/lang/Thread' name: 'currentThread'>
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8189
    | t  p |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8190
    p := Processor activeProcess.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8191
    t := self javaThreadForSTProcess: p.
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8192
    nativeContext sender receiver class name 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8193
        = 'java/util/concurrent/locks/ReentrantLock$NonfairSync' 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8194
            ifTrue: [
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8195
                | owner |
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8196
                owner := (nativeContext sender receiver 
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8197
                            perform: #'getExclusiveOwnerThread()Ljava/lang/Thread;').
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8198
                (owner notNil and: [ owner ~= t ]) ifTrue: [ self breakPoint: #mh. ]
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8199
            ].
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8200
    t notNil ifTrue: [ ^ t ].
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8201
    t := self newThread: p name.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8202
    t instVarNamed: 'tid' put: p id.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8203
    Java addThread: t for: p.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8204
    ^ t
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8205
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  8206
    "Modified: / 04-12-2011 / 20:11:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
  8207
    "Modified: / 09-12-2011 / 12:52:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8208
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8209
1122
2f8e947cfda2 in-the-middle-of-work commit
hlopkmar
parents: 1119
diff changeset
  8210
_java_lang_Thread_holdsLock: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8211
    <javanative: 'java/lang/Thread' name: 'holdsLock'>
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8212
    | obj  mon  thisProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8213
    obj := aJavaContext argAt: 1.
1248
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8214
    obj isNil ifTrue: [self throwNullPointerException:'null given to _java_lang_Thread_holdsLock'].
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8215
    mon := self monitorFor: obj.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8216
    thisProcess := Processor activeProcess.
a9583765fa58 stupid monitor bug fixed, still not enough :/
hlopkmar
parents: 1247
diff changeset
  8217
    (mon isOwnedBy: thisProcess) ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8218
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8219
    "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
  8220
    "Modified: / 09-12-2011 / 11:13:57 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8221
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8222
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8223
_java_lang_Thread_interrupt0: nativeContext 
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8224
    <javanative: 'java/lang/Thread' name: 'interrupt0()V'>
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8225
    | jThread  stProcess |
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8226
    jThread := nativeContext receiver.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8227
    stProcess := self stProcessForJavaThread: jThread.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8228
    self assert: stProcess notNil.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8229
    stProcess javaInterrupt.
1170
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8230
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8231
    "Modified: / 02-01-1998 / 21:49:06 / cg"
b467c1e2a83f tiny fix for monitors
hlopkmar
parents: 1169
diff changeset
  8232
    "Created: / 10-04-1998 / 15:21:43 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8233
    "Modified: / 30-11-2011 / 13:36:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8234
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8235
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8236
_java_lang_Thread_isAlive: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8237
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8238
    <javanative: 'java/lang/Thread' name: 'isAlive'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8240
        "is it alive ?"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8242
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8244
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8245
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8246
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8247
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8248
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8249
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8250
	^ 0 "FALSE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8251
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8252
    stProcess isDead ifTrue:[^ 0 "FALSE"].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8253
    ^ 1 "TRUE"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8255
    "Created: / 5.1.1998 / 02:03:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8256
    "Modified: / 6.2.1998 / 02:15:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8257
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8258
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8259
_java_lang_Thread_isInterrupted: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8260
    <javanative: 'java/lang/Thread' name: 'isInterrupted'>
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8261
    "ask if a thread is interrupted (clear interruptState if arg is true)"
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8262
    
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8263
    | jThread  stProcess  clearInterrupt  wasInterrupted |
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8264
    jThread := nativeContext receiver.
1183
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8265
    stProcess := self stProcessForJavaThread: jThread.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8266
    self assert: stProcess notNil.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8267
    clearInterrupt := nativeContext argAt: 1.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8268
    wasInterrupted := stProcess isInterrupted.
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8269
    clearInterrupt ~~ 0 ifTrue: [ stProcess clearInterrupted ].
4db27693ce84 interrupt and sleep fixes
hlopkmar
parents: 1179
diff changeset
  8270
    stProcess isDead ifTrue: [ ^ 0 ].
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8271
    wasInterrupted ifTrue: [ ^ 1 ] ifFalse: [ ^ 0 ].
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8272
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8273
    "Modified: / 02-01-1998 / 21:49:06 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8274
    "Created: / 07-01-1998 / 18:50:26 / cg"
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  8275
    "Modified: / 05-08-2011 / 22:21:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1188
1460e12fc954 interrupt test passes
hlopkmar
parents: 1185
diff changeset
  8276
    "Modified: / 30-11-2011 / 12:22:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8277
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8278
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8279
_java_lang_Thread_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8280
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8281
    <javanative: 'java/lang/Thread' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8282
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8283
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8284
    "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8286
    "Created: / 20-10-2010 / 11:12:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8287
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8288
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8289
_java_lang_Thread_resume0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8290
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8291
    <javanative: 'java/lang/Thread' name: 'resume0()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8292
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8293
        "yield"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8294
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8295
    |jThread stProcess|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8296
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8297
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8298
    stProcess := JavaVM stProcessForJavaThread:jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8299
    stProcess isNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8300
	ThreadTrace == true ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8301
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8302
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8303
	^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8304
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8305
    stProcess resume
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8306
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8307
    "Created: / 8.1.1998 / 01:06:27 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8308
    "Modified: / 6.2.1998 / 02:15:08 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8309
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8310
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8311
_java_lang_Thread_setPriority0: 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/Thread' name: 'setPriority0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8315
   |t p prio|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8316
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8317
    t := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8318
    p := JavaVM stProcessForJavaThread:t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8319
    prio := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8321
    p isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8322
        ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8323
            'JAVA [info]: no process yet (in setPriority)' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8324
        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8325
        ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8326
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8327
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8328
    "Modified: / 01-05-2011 / 13:25:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8329
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8330
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8331
_java_lang_Thread_sleep: nativeContext 
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8332
    <javanative: 'java/lang/Thread' name: 'sleep'>
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8333
    "sleep for some milliseconds "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8334
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8335
    | millis |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8336
    millis := nativeContext argAt: 1.
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8337
    millis < 0 ifTrue: [
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8338
        self throwIllegalArgumentException: ('negative timeout: %1 in Thread.sleep' bindWith: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8339
    ].
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8340
    Logger 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8341
        log: ('%1 going to sleep for %2' 
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8342
                bindWith: Processor activeProcess printString
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8343
                with: millis)
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8344
        severity: #debug
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8345
        facility: #JVM.
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8346
    self sleepForTimeout: millis state: #sleep.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8347
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
  8348
    "Modified: / 08-01-1999 / 16:42:52 / cg"
1190
00e22b8b2652 interrupts work much better
hlopkmar
parents: 1189
diff changeset
  8349
    "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
  8350
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8351
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8352
_java_lang_Thread_start0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8354
    <javanative: 'java/lang/Thread' name: 'start0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8355
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8356
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8357
    ^self threadStart: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8359
    "Modified: / 24-12-1999 / 03:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8360
    "Created: / 22-11-2010 / 17:48:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8361
    "Modified: / 14-12-2010 / 21:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8362
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8363
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8364
_java_lang_Thread_stop0: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8365
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8366
    <javanative: 'java/lang/Thread' name: 'stop0(Ljava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8367
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8368
        "terminate a thread"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8369
    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8370
    | jThread  stProcess  death |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8371
    jThread := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8372
    stProcess := JavaVM stProcessForJavaThread: jThread.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8373
    stProcess isNil ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8374
        ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8375
            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8376
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8377
        ^ nil "void"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8378
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8379
    stProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8380
    stProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8381
    death := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8382
    stProcess 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8383
        interruptWith: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8384
            JavaVM javaExceptionSignal 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8385
                handle: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8386
                    :ex | 
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8387
                    Processor activeProcess == JavaScreenUpdaterThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8388
                    Processor activeProcess == JavaEventQueueThread ifTrue: [ self halt ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8389
                    Processor activeProcess terminate
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8390
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8391
                do: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8392
                    ThreadTrace == true ifTrue: [
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8393
                        ('JAVA: thread exit: ' , jThread displayString) infoPrintNL.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8394
                    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8395
                    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8396
                    jThread perform: #'exit()V'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8397
                    
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8398
                    self throwException: death.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8399
                ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8400
        ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8401
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8402
    "Created: / 08-01-1998 / 13:11:17 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8403
    "Modified: / 24-12-1999 / 02:32:45 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8404
    "Modified: / 01-12-2011 / 18:26:51 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8405
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8406
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8407
_java_lang_Thread_yield: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8408
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8409
    <javanative: 'java/lang/Thread' name: 'yield()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8410
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8411
        "yield"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8412
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8413
    |jThread stProcess|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8414
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8415
    Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8416
"/    jThread := nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8417
"/    stProcess := JavaVM stProcessForJavaThread:jThread.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8418
"/    stProcess isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8419
"/        ThreadTrace == true ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8420
"/            ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8421
"/        ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8422
"/        ^ nil "void"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8423
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8424
"/    stProcess == Processor activeProcess ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8425
"/        Processor yield.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8426
"/    ] ifFalse:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8427
"/        self halt.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8428
"/    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8429
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8430
    "Created: / 5.1.1998 / 02:03:51 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8431
    "Modified: / 23.12.1998 / 19:19:17 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8432
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8433
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8434
_java_lang_Throwable_fillInStackTrace: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8435
    <javanative: 'java/lang/Throwable' name: 'fillInStackTrace'>
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8436
    | java_lang_Throwable  exceptionObject  list  con |
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8437
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8438
    java_lang_Throwable := Java classNamed: 'java/lang/Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8439
    exceptionObject := nativeContext receiver.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8440
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8441
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8442
    "/ debugging only
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8443
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8444
    
1058
1db06119bf3e Temporary commit (fixing class loaders - classes gets registered twice)
vranyj1
parents: 1053
diff changeset
  8445
    (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
  8446
        self error:'Thrown object is not a java.lang.Throwable'.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8447
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8448
    con := thisContext sender.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8449
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8450
    "/
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8451
    "/ we are not interrested in all intermediate Exception frames ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8452
    "/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8453
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8454
    FullExceptionTrace ifFalse: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8455
        "/ first, skip any JavaVM contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8456
        [ con receiver == exceptionObject ] whileFalse: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8457
        
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8458
        "/ then, all exception-init contexts
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8459
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8460
        [ con receiver == exceptionObject ] whileTrue: [ con := con sender ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8461
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8462
    list := OrderedCollection new.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8463
    [ con notNil ] whileTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8464
        (con isJavaContext) ifTrue: [
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8465
            "/ 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
  8466
            "/ cleanup ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8467
            list add: con shallowCopy
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8468
        ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
  8469
        con := con sender
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8470
    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
  8471
    exceptionObject instVarNamed: 'backtrace' put: (list asArray).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8472
    ^ nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8473
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8474
    "Created: / 04-01-1998 / 14:27:40 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8475
    "Modified: / 08-05-1998 / 21:29:53 / cg"
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
  8476
    "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
  8477
    "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
  8478
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8479
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8480
_java_lang_Throwable_getStackTraceDepth: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8481
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8482
    <javanative: 'java/lang/Throwable' name: 'getStackTraceDepth'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8483
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8484
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8485
    ^(nativeContext receiver instVarNamed: #backtrace) size
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8486
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8487
    "Modified: / 01-05-2011 / 20:25:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8488
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8489
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8490
_java_lang_Throwable_getStackTraceElement: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8491
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8492
    <javanative: 'java/lang/Throwable' name: 'getStackTraceElement'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8493
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8494
    | throwable index ctx stackTraceElement |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8495
    throwable := nativeContext receiver.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8496
    index :=  nativeContext argAt: 1.
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8497
    ctx := (throwable instVarNamed:#backtrace) at: index + 1.
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8498
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8499
    stackTraceElement := (self classForName: 'java.lang.StackTraceElement') new.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  8500
883
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8501
    stackTraceElement 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8502
        instVarNamed: #declaringClass 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8503
        put: (Java as_String:(ctx method javaClass javaName));
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8504
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8505
        instVarNamed: #methodName 
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8506
        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
  8507
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8508
        instVarNamed: #lineNumber 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8509
        put: ctx lineNumber.
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8510
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8511
    ctx method javaClass sourceFile notNil ifTrue:[                
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8512
        stackTraceElement        
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8513
            instVarNamed: #fileName 
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8514
            put: (Java as_String:(ctx method javaClass sourceFile))
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8515
    ].
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8516
    ^ stackTraceElement
b0eecab8d572 - JavaResolver: fixes in class resolving
vranyj1
parents: 881
diff changeset
  8517
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
  8518
    "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
  8519
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8520
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8521
_java_lang_UNIXProcess_forkAndExec: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8522
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8523
    <javanative: 'java/lang/UNIXProcess' name: 'forkAndExec'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8524
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8525
    "^ UnimplementedNativeMethodSignal raise"
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8526
!
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8527
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8528
_java_lang_UNIXProcess_initIDs: nativeContext
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8529
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8530
    <javanative: 'java/lang/UNIXProcess' name: 'initIDs'>
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8531
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8532
    "Nothing to do"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8533
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  8534
    "Modified: / 25-06-2011 / 10:05:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8535
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8536
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8537
_java_lang_UNIXProcess_waitForProcessExit: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8538
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8539
    <javanative: 'java/lang/UNIXProcess' name: 'waitForProcessExit(I)I'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8540
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8541
    "^ UnimplementedNativeMethodSignal raise"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
  8542
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8543
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8544
1550
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8545
!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
  8546
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8547
_java_lang_ref_Finalizer_invokeFinalizeMethod: nativeContext
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8548
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8549
    <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
  8550
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8551
    | o |
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8552
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8553
    o := nativeContext argAt:1.
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8554
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8555
    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
  8556
    o perform:#'finalize()V'
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8557
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8558
    "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
  8559
! !
fde50161f2b4 - more finalization stuff. The only missing bit is periodical call to collectionCycle...
vranyj1
parents: 1549
diff changeset
  8560
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8561
!JavaVM class methodsFor:'native - java.lang.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8562
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8563
_java_lang_reflect_Array_getLength: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8564
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8565
    <javanative: 'java/lang/reflect/Array' name: 'getLength(Ljava/lang/Object;)I'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8566
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8567
    ^(nativeContext argAt: 1) size
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8568
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8569
    "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
  8570
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
  8571
1151
vranyj1
parents: 1150
diff changeset
  8572
_java_lang_reflect_Array_multiNewArray: nativeContext
vranyj1
parents: 1150
diff changeset
  8573
vranyj1
parents: 1150
diff changeset
  8574
    <javanative: 'java/lang/reflect/Array' name: 'multiNewArray(Ljava/lang/Class;[I)Ljava/lang/Object;'>
vranyj1
parents: 1150
diff changeset
  8575
vranyj1
parents: 1150
diff changeset
  8576
    |componentClass sizes cls array |
vranyj1
parents: 1150
diff changeset
  8577
vranyj1
parents: 1150
diff changeset
  8578
    (nativeContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8579
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8580
        ^nil.
vranyj1
parents: 1150
diff changeset
  8581
    ].
vranyj1
parents: 1150
diff changeset
  8582
    (nativeContext argAt:2) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8583
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8584
        ^nil.
vranyj1
parents: 1150
diff changeset
  8585
    ].
vranyj1
parents: 1150
diff changeset
  8586
vranyj1
parents: 1150
diff changeset
  8587
    componentClass := self reflection 
vranyj1
parents: 1150
diff changeset
  8588
                classForJavaClassObject:(nativeContext argAt:1).
vranyj1
parents: 1150
diff changeset
  8589
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8590
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8591
        ^nil
vranyj1
parents: 1150
diff changeset
  8592
    ].    
vranyj1
parents: 1150
diff changeset
  8593
    sizes := nativeContext argAt:2.
vranyj1
parents: 1150
diff changeset
  8594
    sizes class == SignedIntegerArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8595
        self throwIllegalArgumentException:('sizes arguments not instance of int[] (is: %1)' bindWith: sizes class).
vranyj1
parents: 1150
diff changeset
  8596
        ^nil
vranyj1
parents: 1150
diff changeset
  8597
    ].
vranyj1
parents: 1150
diff changeset
  8598
    sizes size == 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8599
        self throwIllegalArgumentException:('sizes argument has no elements').
vranyj1
parents: 1150
diff changeset
  8600
        ^nil
vranyj1
parents: 1150
diff changeset
  8601
    ].
vranyj1
parents: 1150
diff changeset
  8602
    array := nil.
vranyj1
parents: 1150
diff changeset
  8603
    cls := componentClass.
vranyj1
parents: 1150
diff changeset
  8604
    sizes do:[:size|
vranyj1
parents: 1150
diff changeset
  8605
        | newArray |
vranyj1
parents: 1150
diff changeset
  8606
        size > SmallInteger maxVal ifTrue:[
vranyj1
parents: 1150
diff changeset
  8607
            "This is just for Mauve tests"
vranyj1
parents: 1150
diff changeset
  8608
            self throwExceptionClassName:'java.lang.OutOfMemoryError'
vranyj1
parents: 1150
diff changeset
  8609
                             withMessage:'array size too big'.
vranyj1
parents: 1150
diff changeset
  8610
            ^nil.            
vranyj1
parents: 1150
diff changeset
  8611
        ].
vranyj1
parents: 1150
diff changeset
  8612
        size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8613
            self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8614
                             withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8615
            ^nil
vranyj1
parents: 1150
diff changeset
  8616
        ].
vranyj1
parents: 1150
diff changeset
  8617
        cls := cls javaArrayClass.
vranyj1
parents: 1150
diff changeset
  8618
        newArray := cls new: size.
vranyj1
parents: 1150
diff changeset
  8619
        1 to: size do:[:i|
vranyj1
parents: 1150
diff changeset
  8620
            newArray at:i put: array copy.
vranyj1
parents: 1150
diff changeset
  8621
        ].
vranyj1
parents: 1150
diff changeset
  8622
        array := newArray.
vranyj1
parents: 1150
diff changeset
  8623
    ].
vranyj1
parents: 1150
diff changeset
  8624
    ^array.
vranyj1
parents: 1150
diff changeset
  8625
vranyj1
parents: 1150
diff changeset
  8626
    "Modified: / 22-11-2011 / 10:42:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
  8627
!
vranyj1
parents: 1150
diff changeset
  8628
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8629
_java_lang_reflect_Array_newArray:aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8630
    <javanative: 'java/lang/reflect/Array' name: 'newArray'>
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8631
    |componentClass size|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8632
1151
vranyj1
parents: 1150
diff changeset
  8633
    (aJavaContext argAt:1) isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8634
        self throwNullPointerException.
vranyj1
parents: 1150
diff changeset
  8635
        ^nil.
vranyj1
parents: 1150
diff changeset
  8636
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8637
    componentClass := self reflection 
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8638
                classForJavaClassObject:(aJavaContext argAt:1).
1151
vranyj1
parents: 1150
diff changeset
  8639
    componentClass == UndefinedObject ifTrue:[
vranyj1
parents: 1150
diff changeset
  8640
        self throwIllegalArgumentException:'invalid class: void'.
vranyj1
parents: 1150
diff changeset
  8641
        ^nil
vranyj1
parents: 1150
diff changeset
  8642
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8643
    size := aJavaContext argAt:2.
1151
vranyj1
parents: 1150
diff changeset
  8644
    size < 0 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8645
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
  8646
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
  8647
        ^nil
vranyj1
parents: 1150
diff changeset
  8648
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
  8649
    ^ componentClass javaArrayClass new:size
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8650
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8651
    "Created: / 17-12-2010 / 14:49:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8652
    "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
  8653
    "Modified: / 04-06-2011 / 17:06:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
  8654
    "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
  8655
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8656
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8657
_java_lang_reflect_Array_set: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8658
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8659
    <javanative: 'java/lang/reflect/Array' name: 'set'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8660
1151
vranyj1
parents: 1150
diff changeset
  8661
    | array index value |
vranyj1
parents: 1150
diff changeset
  8662
    array :=  nativeContext at:1.
vranyj1
parents: 1150
diff changeset
  8663
    index := (nativeContext at:2) + 1.    
vranyj1
parents: 1150
diff changeset
  8664
    value :=  nativeContext at:3.    
vranyj1
parents: 1150
diff changeset
  8665
vranyj1
parents: 1150
diff changeset
  8666
    array isJavaArray ifFalse:[
vranyj1
parents: 1150
diff changeset
  8667
        self throwIllegalArgumentException:'passed object is not an array'.
vranyj1
parents: 1150
diff changeset
  8668
        ^nil.
vranyj1
parents: 1150
diff changeset
  8669
    ].
vranyj1
parents: 1150
diff changeset
  8670
    index < 1 ifTrue:[
vranyj1
parents: 1150
diff changeset
  8671
        self throwIllegalArgumentException:'index is negative'.
vranyj1
parents: 1150
diff changeset
  8672
        ^nil.
vranyj1
parents: 1150
diff changeset
  8673
    ].
vranyj1
parents: 1150
diff changeset
  8674
    index > array size ifTrue:[
vranyj1
parents: 1150
diff changeset
  8675
        self throwArrayIndexOutOfBoundsException: index.
vranyj1
parents: 1150
diff changeset
  8676
        ^nil.
vranyj1
parents: 1150
diff changeset
  8677
    ].
vranyj1
parents: 1150
diff changeset
  8678
    value isNil ifTrue:[
vranyj1
parents: 1150
diff changeset
  8679
        array at: index put: nil.
vranyj1
parents: 1150
diff changeset
  8680
        ^nil
vranyj1
parents: 1150
diff changeset
  8681
    ].    
vranyj1
parents: 1150
diff changeset
  8682
    (self canCast: value class to: array class javaComponentClass) ifFalse:[
vranyj1
parents: 1150
diff changeset
  8683
        self throwIllegalArgumentException:'type-incompatible value'.
vranyj1
parents: 1150
diff changeset
  8684
        ^nil.
vranyj1
parents: 1150
diff changeset
  8685
    ].
vranyj1
parents: 1150
diff changeset
  8686
    array at: index put: value.
vranyj1
parents: 1150
diff changeset
  8687
vranyj1
parents: 1150
diff changeset
  8688
    "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
  8689
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8690
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8691
_java_lang_reflect_Proxy_defineClass0: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8692
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8693
    <javanative: 'java/lang/reflect/Proxy' name: 'defineClass0'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8694
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8695
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8696
    private static native Class defineClass0(ClassLoader loader, String name,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8697
                                             byte[] b, int off, int len);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8698
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8699
    | loader name b off len  bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8700
    loader := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8701
    name := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8702
    b := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8703
    off := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8704
    len := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8705
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8706
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8707
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8708
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8709
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8710
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8711
    cls classLoader: loader.
1041
d5ff8885b19f ClassLoader refactoring - loads groovy but funny
vranyj1
parents: 1037
diff changeset
  8712
    self classRegistry registerClass: cls.
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8713
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8714
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8715
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  8716
    "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
  8717
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  8718
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8719
!JavaVM class methodsFor:'native - java.net'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8720
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8721
_java_net_DatagramPacket_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8722
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8723
    <javanative: 'java/net/DatagramPacket' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8724
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8725
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8726
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8727
    "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
  8728
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8729
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8730
_java_net_Inet4AddressImpl_getHostByAddr: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8731
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8732
    <javanative: 'java/net/Inet4AddressImpl' name: 'getHostByAddr([B)Ljava/lang/String;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8733
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8734
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8735
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8736
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8737
_java_net_Inet4AddressImpl_getLocalHostName: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8738
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8739
    <javanative: 'java/net/Inet4AddressImpl' name: 'getLocalHostName()Ljava/lang/String;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8740
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8741
    ^Java as_String: OperatingSystem getHostName
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8742
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8743
    "Modified: / 13-09-2011 / 22:36:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8744
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8745
1084
vranyj1
parents: 1083
diff changeset
  8746
_java_net_Inet4AddressImpl_lookupAllHostAddr: nativeContext
vranyj1
parents: 1083
diff changeset
  8747
vranyj1
parents: 1083
diff changeset
  8748
    <javanative: 'java/net/Inet4AddressImpl' name: 'lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress;'>
vranyj1
parents: 1083
diff changeset
  8749
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8750
    | hostname sockaddr inet4Address |
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8751
    hostname := Java as_ST_String: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8752
    [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8753
        sockaddr := IPSocketAddress hostName: hostname.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8754
    ] on: HostNameLookupError do: [:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8755
        self throwExceptionClassName: 'java.net.UnknownHostException' withMessage: (ex description , '(' , hostname , ')').         
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8756
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8757
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8758
    "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
  8759
     that's fine for now, however"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8760
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8761
    inet4Address := (self classForName:'java.net.Inet4Address') newCleared.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8762
    inet4Address 
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8763
        instVarNamed: #family put: 1; "/IPv4
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8764
        instVarNamed: #address put: (sockaddr address doubleWordAt: 1 MSB: true);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8765
        instVarNamed: #hostName put: (nativeContext argAt:1);
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8766
        instVarNamed: #canonicalHostName put: (nativeContext argAt:1).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8767
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8768
    ^(self classForName:'java.net.InetAddress') javaArrayClass with: inet4Address.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8769
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  8770
    "Modified: / 08-11-2011 / 10:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8771
!
vranyj1
parents: 1083
diff changeset
  8772
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8773
_java_net_Inet4Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8774
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8775
    <javanative: 'java/net/Inet4Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8776
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8777
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8778
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8779
    "Modified: / 13-09-2011 / 22:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8780
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8781
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8782
_java_net_Inet6Address_init: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8783
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8784
    <javanative: 'java/net/Inet6Address' name: 'init()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8785
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8786
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8787
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8788
    "Modified: / 13-09-2011 / 22:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8789
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8790
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8791
_java_net_InetAddressImplFactory_isIPv6Supported: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8792
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8793
    <javanative: 'java/net/InetAddressImplFactory' name: 'isIPv6Supported'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8794
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8795
    ^ 0 "IPv6 is not supported!!"
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8796
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  8797
    "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
  8798
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8799
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8800
_java_net_InetAddress_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8801
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8802
    <javanative: 'java/net/InetAddress' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8803
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8804
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8805
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8806
    "Created: / 27-01-1998 / 18:16:40 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8807
    "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
  8808
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8809
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8810
_java_net_NetworkInterface_getAll: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8811
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8812
    <javanative: 'java/net/NetworkInterface' name: 'getAll()[Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8813
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8814
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8815
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8816
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8817
_java_net_NetworkInterface_getByName0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8818
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8819
    <javanative: 'java/net/NetworkInterface' name: 'getByName0(Ljava/lang/String;)Ljava/net/NetworkInterface;'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8820
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8821
    ^ UnimplementedNativeMethodSignal raise
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8822
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  8823
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8824
_java_net_NetworkInterface_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8825
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8826
    <javanative: 'java/net/NetworkInterface' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8827
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8828
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8829
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8830
    "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
  8831
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8832
1084
vranyj1
parents: 1083
diff changeset
  8833
_java_net_PlainDatagramSocketImpl_bind0: nativeContext
vranyj1
parents: 1083
diff changeset
  8834
vranyj1
parents: 1083
diff changeset
  8835
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'bind0(ILjava/net/InetAddress;)V'>
vranyj1
parents: 1083
diff changeset
  8836
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8837
    | port addr sock fd |
1084
vranyj1
parents: 1083
diff changeset
  8838
vranyj1
parents: 1083
diff changeset
  8839
    port := nativeContext argAt: 1.
vranyj1
parents: 1083
diff changeset
  8840
    addr := nativeContext argAt: 2.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8841
    addr isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8842
        self throwSocketException: 'Passed InetAddress object is null'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8843
        ^nil.    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8844
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8845
    fd := nativeContext receiver instVarNamed: #fd.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8846
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8847
        self throwSocketException: 'Socket closed'.        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8848
        ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8849
    ].
1084
vranyj1
parents: 1083
diff changeset
  8850
    sock := self validateFile: nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8851
vranyj1
parents: 1083
diff changeset
  8852
    addr := addr perform: #'getAddress()[B'.
vranyj1
parents: 1083
diff changeset
  8853
    addr = #[0 0 0 0] ifTrue:[
vranyj1
parents: 1083
diff changeset
  8854
        addr := nil
vranyj1
parents: 1083
diff changeset
  8855
    ] ifFalse:[
vranyj1
parents: 1083
diff changeset
  8856
        self throwSocketException: 'Only all-interface bind is supported by underlaing socket implementation, sorry'.
vranyj1
parents: 1083
diff changeset
  8857
        ^nil
vranyj1
parents: 1083
diff changeset
  8858
    ].
vranyj1
parents: 1083
diff changeset
  8859
    [
vranyj1
parents: 1083
diff changeset
  8860
        sock bindTo: port address: addr reuseAddress: true.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8861
        nativeContext receiver instVarNamed: #localPort put: sock port.
1084
vranyj1
parents: 1083
diff changeset
  8862
    ] on: Error do:[:ex|
vranyj1
parents: 1083
diff changeset
  8863
        self throwSocketException: 'bind0() failed: ', ex description        
vranyj1
parents: 1083
diff changeset
  8864
    ]
vranyj1
parents: 1083
diff changeset
  8865
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8866
    "Modified: / 07-11-2011 / 21:45:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8867
!
vranyj1
parents: 1083
diff changeset
  8868
vranyj1
parents: 1083
diff changeset
  8869
_java_net_PlainDatagramSocketImpl_datagramSocketClose: nativeContext
vranyj1
parents: 1083
diff changeset
  8870
vranyj1
parents: 1083
diff changeset
  8871
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketClose()V'>
vranyj1
parents: 1083
diff changeset
  8872
vranyj1
parents: 1083
diff changeset
  8873
        |jsock sock|
vranyj1
parents: 1083
diff changeset
  8874
vranyj1
parents: 1083
diff changeset
  8875
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8876
vranyj1
parents: 1083
diff changeset
  8877
    sock := self validateFile:jsock.
vranyj1
parents: 1083
diff changeset
  8878
    sock notNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  8879
	FileIOTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  8880
	    'JAVA: datagram close socket' infoPrintCR
vranyj1
parents: 1083
diff changeset
  8881
	].
vranyj1
parents: 1083
diff changeset
  8882
	sock close.
vranyj1
parents: 1083
diff changeset
  8883
    ].
vranyj1
parents: 1083
diff changeset
  8884
vranyj1
parents: 1083
diff changeset
  8885
    "Modified: / 21.8.1997 / 17:09:40 / cg"
vranyj1
parents: 1083
diff changeset
  8886
    "Created: / 25.1.1998 / 20:04:24 / cg"
vranyj1
parents: 1083
diff changeset
  8887
!
vranyj1
parents: 1083
diff changeset
  8888
vranyj1
parents: 1083
diff changeset
  8889
_java_net_PlainDatagramSocketImpl_datagramSocketCreate: nativeContext
vranyj1
parents: 1083
diff changeset
  8890
vranyj1
parents: 1083
diff changeset
  8891
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'datagramSocketCreate()V'>
vranyj1
parents: 1083
diff changeset
  8892
vranyj1
parents: 1083
diff changeset
  8893
        |jsock fd sock fileNo|
vranyj1
parents: 1083
diff changeset
  8894
vranyj1
parents: 1083
diff changeset
  8895
    jsock := nativeContext receiver.
vranyj1
parents: 1083
diff changeset
  8896
vranyj1
parents: 1083
diff changeset
  8897
    fd := jsock instVarNamed:'fd'.
vranyj1
parents: 1083
diff changeset
  8898
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
vranyj1
parents: 1083
diff changeset
  8899
        self halt:'file already open'.
vranyj1
parents: 1083
diff changeset
  8900
        self internalError:'file already open'.
vranyj1
parents: 1083
diff changeset
  8901
        self throwIOExceptionWithMessage:'file already open in socketCreate'.
vranyj1
parents: 1083
diff changeset
  8902
        ^ self.
vranyj1
parents: 1083
diff changeset
  8903
    ].
vranyj1
parents: 1083
diff changeset
  8904
vranyj1
parents: 1083
diff changeset
  8905
    FileOpenTrace ifTrue:[
vranyj1
parents: 1083
diff changeset
  8906
        ('JAVA: create datagram socket') infoPrintCR.
vranyj1
parents: 1083
diff changeset
  8907
    ].
vranyj1
parents: 1083
diff changeset
  8908
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  8909
    sock := self commonOpenStreamUsing:[Socket newUDP].
1084
vranyj1
parents: 1083
diff changeset
  8910
    sock isNil ifTrue:[
vranyj1
parents: 1083
diff changeset
  8911
        self throwIOExceptionWithMessage:'socketCreate failed'.
vranyj1
parents: 1083
diff changeset
  8912
    ].
vranyj1
parents: 1083
diff changeset
  8913
vranyj1
parents: 1083
diff changeset
  8914
    fileNo := self addOpenFile:sock.
vranyj1
parents: 1083
diff changeset
  8915
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  8916
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  8917
    jsock finalizationLobby registerChange: jsock
1084
vranyj1
parents: 1083
diff changeset
  8918
vranyj1
parents: 1083
diff changeset
  8919
    "Created: / 25-01-1998 / 19:59:25 / cg"
vranyj1
parents: 1083
diff changeset
  8920
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  8921
    "Modified: / 23-07-2012 / 19:37:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1084
vranyj1
parents: 1083
diff changeset
  8922
!
vranyj1
parents: 1083
diff changeset
  8923
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8924
_java_net_PlainDatagramSocketImpl_init: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8925
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8926
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'init'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8927
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8928
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8929
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  8930
    "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
  8931
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  8932
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8933
_java_net_PlainDatagramSocketImpl_receive0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8934
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8935
    <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
  8936
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8937
    ^ UnimplementedNativeMethodSignal raise
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8938
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8939
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8940
_java_net_PlainDatagramSocketImpl_send: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8941
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8942
    <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
  8943
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8944
        |jsock jdatagramPacket sock ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8945
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8946
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8947
    jdatagramPacket := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8948
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8949
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8950
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8951
	FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8952
	    ('JAVA: socket send') infoPrintCR
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8953
	].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8954
	^ -1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8955
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8956
    ^ -1
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8957
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8958
    "Created: / 4.2.1998 / 15:06:20 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8959
    "Modified: / 30.12.1998 / 20:10:16 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8960
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  8961
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8962
_java_net_PlainDatagramSocketImpl_socketSetOption: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8963
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8964
    <javanative: 'java/net/PlainDatagramSocketImpl' name: 'socketSetOption(ILjava/lang/Object;)V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8965
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8966
        "/ native void socketSetOption (int arg1, java.lang.Object arg2)
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8967
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8968
    |jsock opt optVal sock ok err jSocketOptions|
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8969
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8970
    jsock := nativeContext receiver.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8971
    opt := nativeContext argAt:1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8972
    optVal := nativeContext argAt:2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8973
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8974
    sock := self validateFile:jsock.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8975
    sock notNil ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8976
	FileIOTrace ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8977
	    ('JAVA: socket setOption ' , opt printString) infoPrintCR
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8978
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8979
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8980
	jSocketOptions := Java at:'java.net.SocketOptions'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8981
	(opt == (jSocketOptions instVarNamed:'TCP_NODELAY')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8982
	] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8983
	    (opt == (jSocketOptions instVarNamed:'SO_BINDADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8984
	    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8985
		(opt == (jSocketOptions instVarNamed:'SO_REUSEADDR')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8986
		] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8987
		    (opt == (jSocketOptions instVarNamed:'IP_MULTICAST_IF')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8988
		    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8989
			(opt == (jSocketOptions instVarNamed:'SO_LINGER')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8990
			] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8991
			    (opt == (jSocketOptions instVarNamed:'SO_TIMEOUT')) ifTrue:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8992
			    ] ifFalse:[
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8993
				self throwIOExceptionWithMessage:'bad arg to setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8994
			    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8995
			]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8996
		    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8997
		]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8998
	    ]
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  8999
	].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9000
	self throwIOExceptionWithMessage:'unimplemented: setOption'.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9001
self halt.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9002
	^ nil.  "/ void
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9003
    ].
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9004
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9005
    "Created: / 4.2.1998 / 15:06:20 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9006
    "Modified: / 30.12.1998 / 20:10:16 / cg"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9007
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9008
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9009
_java_net_PlainSocketImpl_initProto: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9010
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9011
    <javanative: 'java/net/PlainSocketImpl' name: 'initProto'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9012
997
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9013
    "Nothing to do"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9014
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9015
    "Created: / 12-01-1998 / 12:56:52 / cg"
c87f3a1cbeba Few more natives for Windows
vranyj1
parents: 995
diff changeset
  9016
    "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
  9017
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9018
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9019
_java_net_PlainSocketImpl_socketAccept: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9020
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9021
    <javanative: 'java/net/PlainSocketImpl' name: 'socketAccept(Ljava/net/SocketImpl;)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9022
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9023
    |jsock fd newJSock sock newSock fileNo|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9024
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9025
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9026
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9027
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9028
    sock isNil ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9029
        self throwIOExceptionWithMessage:'nil socket in accept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9030
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9031
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9032
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9033
    newJSock := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9034
    fd := newJSock instVarNamed:'fd'.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9035
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9036
        self halt:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9037
        self internalError:'file already open'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9038
        self throwIOExceptionWithMessage:'socket already open in socketAccept'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9039
        ^ self.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9040
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9041
    FileIOTrace ifTrue:[
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9042
        'JAVA: socket accept' infoPrintCR
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9043
    ].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9044
    [
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9045
        newSock := self commonOpenStreamUsing:[sock accept].
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9046
    ] on: Error do:[:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9047
        self throwSocketException:'accept failed: ' , ex description.        
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9048
        ^nil.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9049
    ].
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9050
    newSock isNil ifTrue:[
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9051
        self throwSocketException:'accept failed'.
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9052
        ^nil.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9053
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9054
    fileNo := self addOpenFile:newSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9055
    fd instVarNamed:'fd' put:fileNo.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9056
    newJSock instVarNamed:'localport' put: newSock port.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9057
    newJSock instVarNamed:'port' put: newSock getPeer port.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9058
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9059
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9060
    newJSock finalizationLobby registerChange: newJSock.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9061
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9062
    "Created: / 04-02-1998 / 15:26:49 / cg"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9063
    "Modified: / 30-12-1998 / 20:10:01 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9064
    "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
  9065
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9066
1110
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9067
_java_net_PlainSocketImpl_socketAvailable: nativeContext
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9068
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9069
    <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
  9070
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9071
        |jSock sock n|
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9072
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9073
    jSock := nativeContext receiver.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9074
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9075
    sock := self validateFile:jSock.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9076
    sock isNil ifTrue:[
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9077
	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
  9078
	^ self.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9079
    ].
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9080
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9081
    n := sock numAvailable.
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9082
    ^ n
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9083
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9084
    "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
  9085
    "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
  9086
!
7413fa7769ec - call Thread.exit() even if thread is aborted by user (or Smalltalk code)
vranyj1
parents: 1109
diff changeset
  9087
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9088
_java_net_PlainSocketImpl_socketBind: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9089
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9090
    <javanative: 'java/net/PlainSocketImpl' name: 'socketBind(Ljava/net/InetAddress;I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9091
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9092
    |jsock jaddr port sock hostName ok err|
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9093
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9094
    jsock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9095
    jaddr := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9096
    port := nativeContext argAt:2.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9097
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9098
    hostName := jaddr instVarNamed:'hostName'.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9099
    hostName isNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9100
        self halt.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9101
    ] ifFalse:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9102
        hostName := Java as_ST_String:hostName
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9103
    ].
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9104
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9105
    sock := self validateFile:jsock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9106
    sock notNil ifTrue:[
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9107
        FileIOTrace ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9108
            ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9109
        ].
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9110
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9111
        [
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9112
            ok := sock bindTo:port address:nil "hostName".
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9113
        ] on: Error do: [:ex|
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9114
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9115
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9116
                withMessage:'bind failed: ' , ex description.                                                            
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9117
        ].
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9118
        ok ifFalse:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9119
            err := OperatingSystem lastErrorString.
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9120
            self  
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9121
                throwExceptionClassName: 'java.net.BindException' 
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9122
                withMessage:'bind failed: ' , err.                                                            
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9123
        ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9124
       jsock instVarNamed: #localport put: sock port.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9125
       jsock instVarNamed: #address put: jaddr.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9126
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9127
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9128
    "Created: / 04-02-1998 / 15:06:20 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
  9129
    "Modified: / 30-12-1998 / 20:10:16 / cg"
1137
b4aee4f41489 Fixes in socket accept/bind natives
vranyj1
parents: 1136
diff changeset
  9130
    "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
  9131
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9132
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9133
_java_net_PlainSocketImpl_socketClose0: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9134
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9135
    <javanative: 'java/net/PlainSocketImpl' name: 'socketClose0(Z)V'>
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9136
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9137
    ^self commonClose: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9138
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9139
    "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
  9140
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9141
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9142
_java_net_PlainSocketImpl_socketConnect: nativeContext
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9143
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9144
    <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
  9145
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9146
    |jsock jaddr port sock addr hostName ok|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9147
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9148
    jsock := nativeContext receiver.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9149
    jaddr := nativeContext argAt:1.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9150
    port := nativeContext argAt:2.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9151
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9152
    hostName := jaddr instVarNamed:'hostName'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9153
    hostName notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9154
        hostName := Java as_ST_String:hostName
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9155
    ] ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9156
        addr := jaddr instVarNamed:'address'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9157
        addr notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9158
            hostName := ByteArray new:4.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9159
            hostName at:4 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9160
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9161
            hostName at:3 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9162
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9163
            hostName at:2 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9164
            addr := addr bitShift:-8.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9165
            hostName at:1 put:(addr bitAnd:16rFF).
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9166
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9167
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9168
    hostName isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9169
        self halt.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9170
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9171
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9172
    sock := self validateFile:jsock.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9173
    sock notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9174
        FileIOTrace ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9175
            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
  9176
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9177
        SocketConnectConfirmation ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9178
            (PermittedHostConnects isNil 
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9179
            or:[(PermittedHostConnects includes:hostName) not]) ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9180
                (self confirm:'connect to host: ' , hostName printString , ' - ok ?')
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9181
                ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9182
                    self throwIOExceptionWithMessage:'connect permission denied'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9183
                ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9184
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9185
                (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
  9186
                ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9187
                    PermittedHostConnects isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9188
                        PermittedHostConnects := Set new
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9189
                    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9190
                    PermittedHostConnects add:hostName.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9191
                ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9192
            ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9193
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9194
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9195
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9196
            ok := sock connectTo:hostName port:port.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9197
            ok ifFalse:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9198
                self throwExceptionClassName:'java.net.ConnectException' withMessage:'connect failed'.
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9199
            ].
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9200
            jsock instVarNamed: #localport put: sock port.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9201
            jsock instVarNamed: #address put: jaddr.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9202
        ] on: Error do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9203
            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
  9204
        ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9205
        
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9206
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9207
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9208
    "Created: / 25-01-1998 / 20:02:27 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9209
    "Modified: / 30-12-1998 / 20:10:28 / cg"
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9210
    "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
  9211
!
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9212
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9213
_java_net_PlainSocketImpl_socketCreate: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9214
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9215
    <javanative: 'java/net/PlainSocketImpl' name: 'socketCreate(Z)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9216
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9217
    |jsock isStream fd sock fileNo|
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9218
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9219
    jsock := nativeContext receiver.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9220
    isStream := (nativeContext argAt:1) == 1.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9221
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9222
    fd := jsock instVarNamed:'fd'.
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9223
    fd isNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9224
        self throwSocketException: 'null fd object'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9225
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9226
    (fd instVarNamed:'fd') ~~ -1 ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9227
        self halt:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9228
        self internalError:'file already open'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9229
        self throwSocketException:'socket already open in socketCreate'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9230
        ^ self.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9231
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9232
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9233
    FileOpenTrace ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9234
        ('JAVA: create socket') infoPrintCR.
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9235
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9236
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9237
    isStream ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9238
        sock := self commonOpenStreamUsing:[JavaSocket newTCP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9239
    ] ifFalse:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9240
        sock := self commonOpenStreamUsing:[JavaSocket newUDP].
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9241
    ].
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9242
    sock isNil ifTrue:[
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9243
        self throwIOExceptionWithMessage:'socketCreate failed'.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9244
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9245
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9246
    (jsock instVarNamed: #serverSocket) notNil ifTrue:[
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9247
        "/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
  9248
        [
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9249
            Object primitiveFailureSignal
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9250
        ] on: Object primitiveFailureSignal do:[:ex|
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9251
            self throwIOExceptionWithMessage:'cannot set SO_REUSEADDR: ' , ex description.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9252
            ^nil.
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9253
        ]
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9254
    ].
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9255
    
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9256
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9257
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9258
    fileNo := self addOpenFile:sock.
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9259
    fd instVarNamed:'fd' put:fileNo.
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9260
    "Kludge for finalization..."
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
  9261
    jsock finalizationLobby registerChange: jsock
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9262
1091
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9263
    "Created: / 25-01-1998 / 19:59:25 / cg"
215f8fe6687b - few more primitives for java.net.* (working on Tomcat :-)
vranyj1
parents: 1090
diff changeset
  9264
    "Modified: / 30-12-1998 / 20:10:38 / cg"
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
  9265
    "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
  9266
!
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9267
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9268
_java_net_PlainSocketImpl_socketGetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9269
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9270
    <javanative: 'java/net/PlainSocketImpl' name: 'socketGetOption(ILjava/lang/Object;)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9271
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9272
    | opt arg sock ret |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9273
    opt := nativeContext argAt: 1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9274
    arg := nativeContext argAt: 2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9275
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9276
    sock := self validateFile: nativeContext receiver.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9277
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9278
"/  TCP_NODELAY = 1;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9279
    opt = 1 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9280
        ret := sock getSocketOption: #TCP_NODELAY.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9281
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9282
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9283
"/  SO_BINDADDR = 15;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9284
    opt = 15 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9285
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9286
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9287
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9288
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9289
"/  SO_REUSEADDR = 4;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9290
    opt = 4 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9291
        ret := sock getSocketOption: #SO_REUSEADDR.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9292
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9293
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9294
"/  IP_TOS = 3;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9295
    opt = 3 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9296
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9297
        ^-1 "/Unsupported
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9298
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9299
"/  SO_LINGER = 128;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9300
    opt = 128 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9301
        ret := sock getSocketOption:#SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9302
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9303
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9304
"/  SO_TIMEOUT = 4102;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9305
    opt = 4102 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9306
        self breakPoint: #jv.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9307
        ^-1 "/Unsupported                   .
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9308
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9309
"/  SO_SNDBUF = 4097;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9310
    opt = 4097 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9311
        ret := sock getSocketOption: #SO_SNDBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9312
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9313
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9314
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9315
"/  SO_RCVBUF = 4098;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9316
    opt = 4098 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9317
        ret := sock getSocketOption: #SO_RCVBUF.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9318
        ^ret
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9319
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9320
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9321
"/  SO_KEEPALIVE = 8;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9322
    opt = 8 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9323
        ret := sock getSocketOption: #SO_KEEPALIVE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9324
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9325
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9326
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9327
"/  SO_OOBINLINE = 4099;
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9328
    opt = 4099 ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9329
        ret := sock getSocketOption: #SO_OOBINLINE.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9330
        ^ret ifTrue:[1] ifFalse:[-1].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9331
    ]
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9332
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9333
    "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
  9334
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9335
1092
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9336
_java_net_PlainSocketImpl_socketListen: nativeContext
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9337
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9338
    <javanative: 'java/net/PlainSocketImpl' name: 'socketListen(I)V'>
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9339
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9340
        |jSock time sock ok|
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9341
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9342
    jSock := nativeContext receiver.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9343
    time := nativeContext argAt:1.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9344
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9345
    sock := self validateFile:jSock.
224cb55e1ab0 More java.net.* natives & fixes
vranyj1
parents: 1091
diff changeset
  9346
    sock notNil ifTrue:[
1617
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9347
        FileIOTrace ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9348
            ('JAVA: socket listen with timeout ' , time printString) infoPrintCR.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9349
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9350
        ok := sock listenFor:5.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9351
        ok ifFalse:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9352
            self throwIOExceptionWithMessage:'listen failed'.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9353
            ^ self.
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9354
        ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9355
        time ~~ 0 ifTrue:[
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9356
            sock readWaitWithTimeoutMs:time
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9357
        ]
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9358
    ].
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9359
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9360
    "Created: / 04-02-1998 / 15:17:48 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9361
    "Modified: / 30-12-1998 / 20:10:46 / cg"
bc02a3b4cad8 - snapshot restart support for Java code
vranyj1
parents: 1615
diff changeset
  9362
    "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
  9363
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9364
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9365
_java_net_PlainSocketImpl_socketSetOption: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9366
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9367
    <javanative: 'java/net/PlainSocketImpl' name: 'socketSetOption(IZLjava/lang/Object;)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9368
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9369
    | opt on val sock o arg1 arg2 |
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9370
    opt := nativeContext argAt: 1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9371
    on  := nativeContext argAt: 2.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9372
    val := nativeContext argAt: 3.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9373
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9374
    sock := self validateFile: nativeContext receiver.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9375
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9376
"/  TCP_NODELAY = 1;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9377
    opt = 1 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9378
        o := #TCP_NODELAY.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9379
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9380
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9381
"/  SO_BINDADDR = 15;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9382
    opt = 15 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9383
        ^self "/Unsupported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9384
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9385
            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9386
"/  SO_REUSEADDR = 4;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9387
    opt = 4 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9388
        o := #SO_REUSEADDR.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9389
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9390
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9391
"/  IP_TOS = 3;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9392
    opt = 3 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9393
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9394
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9395
"/  SO_LINGER = 128;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9396
    opt = 128 ifTrue:[
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9397
        o := #SO_LINGER.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9398
        arg1 := (on == 1).
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9399
        arg2 := val instVarNamed: #value.
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9400
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9401
"/  SO_TIMEOUT = 4102;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9402
    opt = 4102 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9403
        ^self "/Unssuported
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9404
                   .
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9405
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9406
"/  SO_SNDBUF = 4097;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9407
    opt = 4097 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9408
        o := #SO_SNDBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9409
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9410
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9411
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9412
"/  SO_RCVBUF = 4098;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9413
    opt = 4098 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9414
        o := #SO_RCVBUF.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9415
        arg1 := val instVarNamed: #value.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9416
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9417
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9418
"/  SO_KEEPALIVE = 8;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9419
    opt = 8 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9420
        o := #SO_KEEPALIVE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9421
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9422
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9423
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9424
"/  SO_OOBINLINE = 4099;
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9425
    opt = 4099 ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9426
        o := #SO_OOBINLINE.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9427
        arg1 := (on == 1)
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9428
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9429
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9430
    [
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9431
        sock setSocketOption: o argument: arg1 argument: arg2.   
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9432
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9433
        self throwSocketException: 'Error setting socket option: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9434
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9435
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9436
    "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
  9437
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9438
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9439
_java_net_SocketInputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9440
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9441
    <javanative: 'java/net/SocketInputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9442
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9443
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9444
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9445
    "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
  9446
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9447
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9448
_java_net_SocketInputStream_socketRead0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9449
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9450
    <javanative: 'java/net/SocketInputStream' name: 'socketRead0(Ljava/io/FileDescriptor;[BIII)I'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9451
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9452
    | fdObj data off len timeout sock nread |
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9453
    fdObj   := nativeContext argAt:1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9454
    data    := nativeContext argAt:2.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9455
    off     := nativeContext argAt:3.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9456
    len     := nativeContext argAt:4.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9457
    timeout := nativeContext argAt:5.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9458
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9459
    fdObj isNil ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9460
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9461
        ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9462
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9463
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9464
    sock := self validateFile: fdObj.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9465
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9466
    timeout ~~ 0 ifTrue:[            
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9467
        [
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9468
            (sock readWaitWithTimeout: timeout) ifTrue:[
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9469
                self throwExceptionClassName:'java.net.SocketTimeoutException' withMessage: 'Read timed out'.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9470
                ^ -1.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9471
            ].          
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9472
        ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9473
            self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9474
        ]
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9475
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9476
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9477
    [
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9478
        nread := sock nextAvailableBytes: len into: data startingAt: off + 1
1104
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9479
    ] on: Error do:[:ex|
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9480
        self throwSocketException: 'Error when reading: ', ex description.
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9481
    ].
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9482
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9483
    ^nread
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9484
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
  9485
    "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
  9486
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9487
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9488
_java_net_SocketOutputStream_init: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9489
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9490
    <javanative: 'java/net/SocketOutputStream' name: 'init()V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9491
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9492
    "Nothing to do"
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9493
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9494
    "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
  9495
!
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9496
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9497
_java_net_SocketOutputStream_socketWrite0: nativeContext
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9498
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9499
    <javanative: 'java/net/SocketOutputStream' name: 'socketWrite0(Ljava/io/FileDescriptor;[BII)V'>
cf1e4f41b8b2 More java.net.* native methods
vranyj1
parents: 1103
diff changeset
  9500
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9501
    | fdObj data off len  sock |
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9502
    fdObj   := nativeContext argAt:1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9503
    data    := nativeContext argAt:2.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9504
    off     := nativeContext argAt:3.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9505
    len     := nativeContext argAt:4.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9506
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9507
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9508
    fdObj isNil ifTrue:[
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9509
        self throwSocketException: 'Socket closed (null fdObj passed to socketRead0)'.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9510
        ^ -1.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9511
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9512
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9513
    sock := self validateFile: fdObj.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9514
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9515
    [
1136
2a94c9946e7e Fixes in socket read/write
vranyj1
parents: 1135
diff changeset
  9516
        sock nextPutBytes: len from: data startingAt: off + 1.
1108
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9517
    ] on: Error do:[:ex|
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9518
        self throwIOExceptionWithMessage: 'Error when writing: ', ex description.
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9519
    ].
847291fc77d7 More java.net.* primitives
vranyj1
parents: 1104
diff changeset
  9520
1116
3d108134cd76 in-the-middle-of-the-work commit, may break stuff, fixes to come soon :)
hlopkmar
parents: 1115
diff changeset
  9521
    "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
  9522
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9523
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9524
!JavaVM class methodsFor:'native - java.nio'!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9525
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9526
_java_nio_Bits_copyFromByteArray: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9527
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9528
    static native void copyFromByteArray(Object src, long srcPos, long dstAddr,
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9529
                                         long length);
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9530
    "
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9531
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9532
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9533
    <javanative: 'java/nio/Bits' name: 'copyFromByteArray(Ljava/lang/Object;JJJ)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9534
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9535
    | src srcPos dstAddr length |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9536
    src := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9537
    srcPos := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9538
    dstAddr := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9539
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9540
    SimulatedNativeMemory  bcopy: dstAddr length: length from: src offset: srcPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9541
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9542
    "Modified: / 11-07-2012 / 10:37:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9543
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
  9544
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9545
_java_nio_Bits_copyToByteArray: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9546
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9547
    static native void copyToByteArray(long srcAddr, Object dst, long dstPos,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9548
                                       long length);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9549
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9550
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9551
    <javanative: 'java/nio/Bits' name: 'copyToByteArray(JLjava/lang/Object;JJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9552
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9553
    | srcAddr dst dstPos length |
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9554
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9555
    srcAddr := nativeContext argAt: 1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9556
    dst := nativeContext argAt: 3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9557
    dstPos := nativeContext argAt: 4.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9558
    length := nativeContext argAt: 6.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9559
    SimulatedNativeMemory bcopy: srcAddr length: length into: dst offset: dstPos.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9560
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
  9561
    "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
  9562
! !
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
  9563
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9564
!JavaVM class methodsFor:'native - java.security'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9565
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9566
_java_security_AccessController_doPrivileged: aJavaContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9567
    <javanative: 'java/security/AccessController' name: 'doPrivileged'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9568
    "we don't care about permissions, we will just allow this. Now it's guaranteed that called code will not perform access permission checks"
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9569
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9570
    | retval |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9571
    
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9572
    JavaVM privilegedAccessQuery answer: true do: [
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9573
        retval := (aJavaContext argAt: 1) perform: #'run()Ljava/lang/Object;'.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9574
    ].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
  9575
    ^retval
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9577
    "Created: / 20-10-2010 / 12:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1017
23971b5214d8 removed useless infoPrintCR
hlopkmar
parents: 1016
diff changeset
  9578
    "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
  9579
    "Modified: / 18-10-2011 / 23:28:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9580
!
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9581
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9582
_java_security_AccessController_getStackAccessControlContext: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9583
    <javanative: 'java/security/AccessController' name: 'getStackAccessControlContext'>
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9584
    "/ introduced with jdk1.2
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9585
    "/ supposed to do more here ...
1016
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9586
    
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9587
    ^nil.
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9588
2b20730b8717 work on ticket #28(illegal access after evaluating expresion in workspace).
hlopkmar
parents: 1000
diff changeset
  9589
    "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
  9590
    "Modified: / 09-10-2011 / 23:40:46 / Marcel Hlopko <hlopik@gmail.com>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9591
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9592
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9593
!JavaVM class methodsFor:'native - java.sql'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9594
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9595
_java_sql_DriverManager_getCallerClassLoader: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9596
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9597
    <javanative: 'java/sql/DriverManager' name: 'getCallerClassLoader()Ljava/lang/ClassLoader;'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9598
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9599
    ^nativeContext 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9600
        sender sender 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9601
        receiver class theNonMetaclass
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9602
        classLoader
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9603
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
  9604
    "Modified: / 05-12-2011 / 11:34:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9605
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9606
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9607
!JavaVM class methodsFor:'native - java.text'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9608
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9609
_java_text_Bidi_nativeBidiChars: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9610
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9611
    <javanative: 'java/text/Bidi' name: 'nativeBidiChars(Ljava/text/Bidi;[CI[BIII)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9612
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9613
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9614
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
  9615
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9616
!JavaVM class methodsFor:'native - java.util'!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9617
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9618
_java_util_ResourceBundle_getClassContext: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9619
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9620
    <javanative: 'java/util/ResourceBundle' name: 'getClassContext'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9621
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9622
    "returns an array filled with the contextChain receivers classes.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9623
     What an ugly, messy interface."
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9624
    
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9625
    |chain con cls jClass|
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9626
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9627
    chain := OrderedCollection new.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9628
    con := thisContext sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9629
    [
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9630
        con notNil 
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9631
            and:[con receiver isMethod not or:[con receiver isJavaMethod not]]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9632
    ] whileTrue:[con := con sender.].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9633
    con := con sender sender.
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9634
    [con notNil] whileTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9635
        (true) "con isJavaContext" ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9636
            cls := con receiver class.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9637
            cls isMeta ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9638
                "/ t'was a static method
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9639
                cls := cls soleInstance
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9640
            ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9641
            cls isJavaClass ifTrue:[
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9642
                jClass := self reflection javaClassObjectForClass:cls.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9643
                chain add:jClass.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9644
            ]
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9645
        ].
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9646
        con := con sender.
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9647
    ].
1242
62be7670d158 Few fixes for Tomcat, new Tomcat startup script
vranyj1
parents: 1238
diff changeset
  9648
    ^(self classForName:'java.lang.Class') javaArrayClass withAll: chain
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9649
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9650
    "Created: / 05-01-1998 / 02:47:00 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9651
    "Modified: / 24-12-1998 / 00:34:57 / cg"
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9652
    "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
  9653
    "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
  9654
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9655
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9656
_java_util_TimeZone_getSystemTimeZoneID: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9657
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9658
    <javanative: 'java/util/TimeZone' name: 'getSystemTimeZoneID'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9659
866
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9660
    "JV@2011-06-25: TODO: finish, returning nil here means GMT"
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9661
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9662
    ^ nil
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9663
10d1f47af6d9 Few fixes for Mauve...
vranyj1
parents: 864
diff changeset
  9664
    "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
  9665
! !
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9666
846
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9667
!JavaVM class methodsFor:'native - java.util.concurrent.atomic'!
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9668
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9669
_java_util_concurrent_atomic_AtomicLong_VMSupportsCS8: nativeContext
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9670
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9671
    <javanative: 'java/util/concurrent/atomic/AtomicLong' name: 'VMSupportsCS8'>
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9672
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9673
    "Should be safe - say we don't support lockless updates"        
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9674
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9675
    ^ 0
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9676
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
  9677
    "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
  9678
! !
cec92244091c fixed bug in resolving
hlopkmar
parents: 837
diff changeset
  9679
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9680
!JavaVM class methodsFor:'native - java.util.jar'!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9681
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9682
_java_util_jar_JarFile_getMetaInfEntryNames: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9683
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9684
    <javanative: 'java/util/jar/JarFile' name: 'getMetaInfEntryNames'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9685
    "
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9686
    private native String[] getMetaInfEntryNames();
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9687
    "
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9688
    | zipArchive entries jentries |
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9689
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
  9690
    zipArchive := ZipCache at: (nativeContext receiver instVarNamed: #jzfile).
881
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9691
    entries := zipArchive entries select:[:entry|entry size > 9 and:[entry startsWith: 'META-INF/']].    
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9692
    jentries := Java java_lang_String javaArrayClass new: entries size.
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9693
    1 to: entries size do:[:i|
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9694
        jentries at: i put: (Java as_String: (entries at: i))
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9695
    ].
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9696
    ^jentries
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9697
e45c36ff74fc Fixes in primitives
vranyj1
parents: 880
diff changeset
  9698
    "Modified: / 05-08-2011 / 20:18:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9699
! !
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
  9700
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9701
!JavaVM class methodsFor:'native - java.util.zip'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9702
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9703
_java_util_zip_Adler32_updateBytes: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9704
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9705
    <javanative: 'java/util/zip/Adler32' name: 'updateBytes'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9706
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9707
    ^ UnimplementedNativeMethodSignal raise
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9708
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9709
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9710
_java_util_zip_CRC32_update: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9711
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9712
    <javanative: 'java/util/zip/CRC32' name: 'update(II)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9713
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9714
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9715
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
  9716
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9717
_java_util_zip_CRC32_updateBytes: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9718
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9719
    <javanative: 'java/util/zip/CRC32' name: 'updateBytes(I[BII)I'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9720
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9721
    | crc b off len |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9722
    crc := nativeContext argAt: 1.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9723
    b   := nativeContext argAt: 2.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9724
    off := nativeContext argAt: 3.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9725
    len := nativeContext argAt: 4.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9726
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9727
    ^ZipStream crc32BytesIn:b from:off + 1  to: off + len crc:crc
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9728
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9729
    "Modified: / 05-12-2011 / 00:41:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9730
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9731
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9732
_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
  9733
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9734
    <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
  9735
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9736
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9737
    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
  9738
    "
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9739
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9740
    | 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
  9741
    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
  9742
    b := nativeContext argAt: 3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9743
    off := nativeContext argAt: 4.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9744
    len := nativeContext argAt: 5.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9745
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9746
    deflater := addr."/ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9747
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9748
    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
  9749
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9750
    ^ret.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9751
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9752
    "Modified: / 20-07-2012 / 21:55: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
  9753
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9754
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9755
_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
  9756
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9757
    <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
  9758
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9759
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9760
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9761
    deflater := addr."/ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9762
    deflater end.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9763
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9764
    "Modified: / 20-07-2012 / 21:55:30 / 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
  9765
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9766
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9767
_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
  9768
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9769
    <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
  9770
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9771
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9772
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9773
    deflater := addr."/ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9774
    ^deflater bytesRead.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9775
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9776
    "Modified: / 20-07-2012 / 21:55:33 / 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
  9777
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9778
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9779
_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
  9780
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9781
    <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
  9782
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9783
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9784
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9785
    deflater := addr."/ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9786
    ^deflater bytesWritten.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9787
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9788
    "Modified: / 20-07-2012 / 21:55:37 / 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
  9789
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9790
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9791
_java_util_zip_Deflater_init: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9792
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9793
    <javanative: 'java/util/zip/Deflater' name: 'init(IIZ)J'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9794
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9795
    | level strategy nowrap deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9796
    level := nativeContext argAt: 1.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9797
    strategy := nativeContext argAt: 2.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9798
    nowrap := nativeContext argAt:3.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9799
    deflater := JavaZipSupport deflaterFor: self.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9800
    deflater init: strategy level: level nowrap: nowrap.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9801
"/    ZipInflaters add: deflater.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9802
"/    ^ZipInflaters size.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9803
    ^deflater
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9804
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9805
    "Modified: / 20-07-2012 / 21:55:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9806
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9807
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9808
_java_util_zip_Deflater_initIDs: nativeContext 
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9809
    <javanative: 'java/util/zip/Deflater' name: 'initIDs'>
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9810
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9811
    "Nothing to do here"
1246
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9812
2e7d85df01f8 resolveClass native resolves whole CP, for even more eager resolving, run JavaVM enableEagerResolving :)
hlopkmar
parents: 1242
diff changeset
  9813
    "Modified: / 08-12-2011 / 21:11:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
  9814
    "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
  9815
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
  9816
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9817
_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
  9818
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9819
    <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
  9820
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9821
    | addr deflater |
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9822
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9823
    deflater := addr."/ZipInflaters at: addr.
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9824
    deflater reset.
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9825
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9826
    "Modified: / 20-07-2012 / 21:55:58 / 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
  9827
!
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
  9828
1083
vranyj1
parents: 1081
diff changeset
  9829
_java_util_zip_Inflater_end: nativeContext
vranyj1
parents: 1081
diff changeset
  9830
vranyj1
parents: 1081
diff changeset
  9831
    <javanative: 'java/util/zip/Inflater' name: 'end(J)V'>
vranyj1
parents: 1081
diff changeset
  9832
vranyj1
parents: 1081
diff changeset
  9833
     "
vranyj1
parents: 1081
diff changeset
  9834
    private native static void reset(long addr);
vranyj1
parents: 1081
diff changeset
  9835
    "
vranyj1
parents: 1081
diff changeset
  9836
    | addr inflater |
vranyj1
parents: 1081
diff changeset
  9837
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9838
    inflater := addr."/ZipInflaters at: addr.
1083
vranyj1
parents: 1081
diff changeset
  9839
    inflater end.
vranyj1
parents: 1081
diff changeset
  9840
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9841
    "Modified: / 20-07-2012 / 21:54:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1083
vranyj1
parents: 1081
diff changeset
  9842
!
vranyj1
parents: 1081
diff changeset
  9843
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9844
_java_util_zip_Inflater_getBytesRead: nativeContext
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9845
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9846
    <javanative: 'java/util/zip/Inflater' name: 'getBytesRead(J)J'>
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9847
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9848
    | addr inflater |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9849
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9850
    inflater := addr."/ZipInflaters at: addr.
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9851
    ^inflater bytesRead.
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9852
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9853
    "Modified: / 20-07-2012 / 21:54:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9854
!
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
  9855
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9856
_java_util_zip_Inflater_getBytesWritten: nativeContext
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9857
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9858
    <javanative: 'java/util/zip/Inflater' name: 'getBytesWritten'>
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9859
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9860
    | addr inflater |
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9861
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9862
    inflater := addr."/ZipInflaters at: addr.
952
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9863
    ^inflater bytesWritten.
7afd3529b9fa More natives for java.util.zip.Inflater
vranyj1
parents: 948
diff changeset
  9864
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9865
    "Modified: / 20-07-2012 / 21:54:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9866
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9867
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9868
_java_util_zip_Inflater_inflateBytes: nativeContext
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9869
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9870
    <javanative: 'java/util/zip/Inflater' name: 'inflateBytes'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9871
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9872
    private native int inflateBytes(long addr, byte[] b, int off, int len)
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9873
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9874
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9875
    | addr b off len inflater ret |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9876
    addr := nativeContext argAt: 1."long takes 2 slots"
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9877
    b := nativeContext argAt: 3.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9878
    off := nativeContext argAt: 4.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9879
    len := nativeContext argAt: 5.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
  9880
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9881
    inflater := addr."/ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9882
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9883
    ret := inflater inflate: b offset: off length: len inflater: nativeContext receiver.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9884
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9885
    ^ret.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9887
    "Created: / 30-04-2011 / 23:02:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9888
    "Modified: / 20-07-2012 / 21:54:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9889
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9891
_java_util_zip_Inflater_init: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9892
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9893
    <javanative: 'java/util/zip/Inflater' name: 'init'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9894
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9895
    
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9896
    | nowrap inflater |
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9897
    nowrap := nativeContext argAt:1.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9898
    inflater := JavaZipSupport inflaterFor: self.
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9899
    inflater init: nowrap.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9900
"/    ZipInflaters add: inflater.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9901
    ^inflater."/ZipInflaters size.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9902
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9903
    "Created: / 01-02-1998 / 20:14:01 / cg"
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9904
    "Modified: / 20-07-2012 / 21:55:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9905
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9906
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9907
_java_util_zip_Inflater_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9908
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9909
    <javanative: 'java/util/zip/Inflater' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9910
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9911
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9912
    "Nothing to do, used only to register natives"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9913
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9914
    "Created: / 30-04-2011 / 21:55:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9915
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9916
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9917
_java_util_zip_Inflater_reset: nativeContext
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9918
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9919
    <javanative: 'java/util/zip/Inflater' name: 'reset'>
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9920
    "
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9921
    private native static void reset(long addr);
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9922
    "
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9923
    | addr inflater |
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
  9924
    addr := nativeContext argAt: 1.
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9925
    inflater := addr."/ZipInflaters at: addr.
945
84d75b6d090d Native method fixes
vranyj1
parents: 943
diff changeset
  9926
    inflater reset.
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9927
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9928
    "Created: / 01-02-1998 / 20:14:13 / cg"
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
  9929
    "Modified: / 20-07-2012 / 21:56:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
908
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9930
!
d990d0d520d9 ClassLoader trickery, maybe not a good idea, we will see.
vranyj1
parents: 907
diff changeset
  9931
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9932
_java_util_zip_ZipEntry_initFields: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9934
    <javanative: 'java/util/zip/ZipEntry' name: 'initFields'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9935
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9936
        | entry jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9937
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9938
    entry := aJavaContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9939
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9940
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9941
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9942
    entry 
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9943
        instVarNamed: #name     put: (Java as_String: zmember fileName);
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9944
        instVarNamed: #time     put: -1"zmember lastModFileTime";
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9945
        instVarNamed: #crc      put: zmember crc32;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9946
        instVarNamed: #size     put: zmember uncompressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9947
        instVarNamed: #csize    put: zmember compressedSize;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9948
        instVarNamed: #method   put: zmember compressionMethod;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9949
        instVarNamed: #extra    put: zmember extraField;
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9950
        instVarNamed: #comment  put: (zmember fileComment ifNotNil:[Java as_String: zmember fileComment]).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9951
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9952
    "Created: / 01-04-2011 / 13:04:24 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1221
2a6660fdb81d fixes in natives
vranyj1
parents: 1220
diff changeset
  9953
    "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
  9954
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9955
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9956
_java_util_zip_ZipEntry_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9957
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9958
    <javanative: 'java/util/zip/ZipEntry' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9959
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9960
        "hopefully nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9962
    "Created: / 01-04-2011 / 13:02:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9963
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9964
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9965
_java_util_zip_ZipFile_close: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9966
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9967
    <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
  9968
1083
vranyj1
parents: 1081
diff changeset
  9969
    | jzfile zar |
vranyj1
parents: 1081
diff changeset
  9970
    jzfile := nativeContext argAt: 1.
vranyj1
parents: 1081
diff changeset
  9971
    zar := ZipCache at: jzfile.
vranyj1
parents: 1081
diff changeset
  9972
    zar close.
vranyj1
parents: 1081
diff changeset
  9973
    ZipCache at: jzfile put: nil.
vranyj1
parents: 1081
diff changeset
  9974
vranyj1
parents: 1081
diff changeset
  9975
    "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
  9976
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
  9977
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9978
_java_util_zip_ZipFile_freeEntry: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9979
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9980
    <javanative: 'java/util/zip/ZipFile' name: 'freeEntry'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9981
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9982
    | zipArchiveIndex  zipEntryIndex |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9985
    zipArchiveIndex := nativeContext at: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9986
    zipEntryIndex := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9987
    zipEntryIndex = 0 ifFalse: [ ZipEntryCache at: zipEntryIndex put: nil ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9988
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9989
    "Modified: / 01-05-2011 / 13:33:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9990
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9992
_java_util_zip_ZipFile_getCSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9993
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9994
    <javanative: 'java/util/zip/ZipFile' name: 'getCSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9995
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9996
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9997
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9998
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
  9999
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10001
    ^zmember compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10002
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10003
    "Created: / 30-04-2011 / 21:50:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10004
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10005
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10006
_java_util_zip_ZipFile_getEntry: nativeContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10007
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10008
    <javanative: 'java/util/zip/ZipFile' name: 'getEntry'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10009
921
cf21839e2346 Fixes for System.in, System.out, System.err on Windows/SunJDK6
vranyj1
parents: 920
diff changeset
 10010
    | zipArchive  filename  member |
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10011
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10012
    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
 10013
    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
 10014
    member := (zipArchive findMemberAllowForMissingTrailingSlash: filename).
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10015
    member isNil ifTrue: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10016
        ^ 0 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10017
    ] ifFalse: [ 
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10018
        ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10019
            ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10020
            ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10021
        ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10022
    ]
762
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10023
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10024
    "Created: / 27-03-2011 / 16:59:03 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10025
    "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
 10026
    "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
 10027
    "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
 10028
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10029
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10030
_java_util_zip_ZipFile_getMethod: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10032
    <javanative: 'java/util/zip/ZipFile' name: 'getMethod'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10033
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10034
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10035
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10036
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10037
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10039
    ^zmember compressionMethod
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10041
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10042
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10043
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10044
_java_util_zip_ZipFile_getNextEntry: nativeContext
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10045
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10046
    <javanative: 'java/util/zip/ZipFile' name: 'getNextEntry(JI)J'>
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10047
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10048
    | zipArchive  index i |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10049
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10050
    zipArchive := ZipCache at: (nativeContext at: 1).
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10051
    index := nativeContext at: 3.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10052
    i := 0.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10053
    zipArchive zipMembersDo:[:member |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10054
        index == i ifTrue:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10055
            ^ ZipEntryCache indexOf: member ifAbsent:[
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10056
                ZipEntryCache add: member.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10057
                ZipEntryCache size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10058
            ]
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10059
        ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10060
        i := i + 1.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10061
    ].
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10062
    ^0
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10063
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10064
    "Modified: / 05-12-2011 / 11:19:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10065
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 10066
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10067
_java_util_zip_ZipFile_getSize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10069
    <javanative: 'java/util/zip/ZipFile' name: 'getSize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10070
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10071
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10072
    | jzentry zmember |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10073
    jzentry := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10074
    zmember := ZipEntryCache at: jzentry.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10075
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10076
    ^zmember uncompressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10078
    "Created: / 30-04-2011 / 21:53:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10079
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10081
_java_util_zip_ZipFile_getTotal: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10082
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10083
    <javanative: 'java/util/zip/ZipFile' name: 'getTotal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10084
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10085
    | zar|
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10086
    zar := ZipCache at: (nativeContext argAt: 1).
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10087
    ^ zar entries size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10088
1547
5935ecf54caa - JavaVM
vranyj1
parents: 1546
diff changeset
 10089
    "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
 10090
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10091
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10092
_java_util_zip_ZipFile_initIDs: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10093
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10094
    <javanative: 'java/util/zip/ZipFile' name: 'initIDs'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10095
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10096
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10097
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10098
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10099
    "Created: / 23-03-2011 / 19:37:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10100
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10101
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10102
_java_util_zip_ZipFile_open: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10103
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10104
    <javanative: 'java/util/zip/ZipFile' name: 'open'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10105
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10106
    | path  mode  lastModTime  result |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10107
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10108
    path := Java as_ST_String: (nativeContext at: 1).
1281
b46adbe75503 Some cleanup
vranyj1
parents: 1275
diff changeset
 10109
    "/(path endsWith:'.jar') ifFalse:[self breakPoint: #jv]. 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10110
    mode := nativeContext at: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10111
    lastModTime := nativeContext at: 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10112
    result := path asFilename.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10113
    result ifNil: [ JavaVM throwZipException ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10114
    ^[ 
1538
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10115
        | i zar |
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10116
        zar := ZipArchive readingFrom: result readStream.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10117
        i := ZipCache indexOf: nil.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10118
        i ~~ 0 ifTrue:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10119
            ZipCache at: i put: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10120
            i
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10121
        ] ifFalse:[
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10122
            ZipCache add: zar.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10123
            ZipCache size.
baa8e06aac40 - finalization hack for ZipFile, Inflater and Deflater
vranyj1
parents: 1537
diff changeset
 10124
        ].
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10125
    ] on: Error do:[:ex|
1537
0072327ccc71 - JavaVM: some new natives for zip, mainly Deflater. No ZipFile finalization hack yet.
vranyj1
parents: 1533
diff changeset
 10126
        self throwZipException: 'Cannot open zip file: ', ex description
957
84a9553aa486 Fixes for ExtClassLoader
vranyj1
parents: 952
diff changeset
 10127
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10128
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10129
    "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
 10130
    "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
 10131
!
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10132
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10133
_java_util_zip_ZipFile_read: aJavaContext
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10134
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10135
    <javanative: 'java/util/zip/ZipFile' name: 'read'>
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10136
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10137
    
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10138
    | jzfile jzentry pos b off len zar zmember bytesToRead |
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10139
    jzfile := aJavaContext argAt: 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10140
    jzentry := aJavaContext argAt: 3. "first arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10141
    pos := aJavaContext argAt: 5. "jzentry arg is long!!!!!!"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10142
    b := aJavaContext argAt: 7.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10143
    off := aJavaContext argAt: 8.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10144
    len := aJavaContext argAt: 9.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10145
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10146
    zar := ZipCache at: jzfile.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10147
    zmember := ZipEntryCache at: jzentry.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10148
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10149
    bytesToRead := len min: (zmember compressedSize - pos).
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10150
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10151
    ^zar nextBytes: bytesToRead of: zmember startingAt: pos into: b startingAt: off + 1.
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10152
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10153
    "Created: / 30-04-2011 / 22:15:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d995915ebc0b Merged with /branches/jk
vranyj1
parents: 761
diff changeset
 10154
    "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
 10155
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10156
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10157
!JavaVM class methodsFor:'native - old-style'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10158
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10159
_AccessController_beginPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10160
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10161
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10162
    "Created: / 27.1.1998 / 18:18:11 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10163
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10164
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10165
_AccessController_endPrivileged:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10166
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10167
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10168
    "Created: / 27.1.1998 / 18:18:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10169
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10170
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10171
_AudioDevice_audioClose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10172
    |device fd stream|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10173
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10174
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10175
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10176
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10177
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10178
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10179
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10180
		stream close.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10181
		device instVarNamed:'dev' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10182
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10183
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10184
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10185
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10186
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10187
    "Modified: / 13.1.1998 / 18:08:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10188
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10190
_AudioDevice_audioOpen:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10191
    |f stream fileNo|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10192
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10193
    NoAudio ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10194
        Transcript showCR:'JAVA: audio disabled'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10195
        ^ -1
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10196
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10198
    Stream streamErrorSignal handle:[:ex |
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10199
        Stream streamErrorSignal handle:[:ex |
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10200
            stream := nil.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10201
            ex return.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10202
        ] do:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10203
            stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10204
        ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10205
    ] do:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10206
        stream := SoundStream writing.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10207
        stream notNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10208
            stream setSampleRate:8000.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10209
        ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10210
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10211
    stream isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10212
"/        ^ -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10213
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10214
        f := '/dev/audio' asFilename.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10215
        f exists ifFalse:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10216
            Transcript showCR:'JAVA: neither SoundStream nor /dev/audio available'.
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10217
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10218
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10219
        stream := self commonOpenStreamUsing: [f readWriteStream].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10220
        stream isNil ifTrue:[
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10221
            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
 10222
            ^ -1
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10223
        ].
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10224
        fileNo := self addOpenFile:stream.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10225
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10226
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10227
    fileNo := self addOpenFile:stream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10229
    FileOpenTrace ifTrue:[
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10230
        ('JAVA: opened audioDevice as FD ' , fileNo printString) infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10231
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10233
    ^ fileNo
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10234
1545
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10235
    "Created: / 10-01-1998 / 15:45:30 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10236
    "Modified: / 14-10-1998 / 15:20:52 / cg"
1ded666190e2 - Try to cleanup on too many files open error
vranyj1
parents: 1544
diff changeset
 10237
    "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
 10238
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10240
_AudioDevice_audioWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10241
    |device fd stream bytes count|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10242
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10243
    device := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10244
    device notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10245
	fd := device instVarNamed:'dev'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10246
	(fd notNil and:[fd > 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10247
	    stream := self getOpenFileAt:fd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10248
	    stream notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10249
		bytes := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10250
		count := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10251
		stream nextPutBytes:count from:bytes startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10252
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10253
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10254
    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10255
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10256
    "Created: / 10.1.1998 / 15:45:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10257
    "Modified: / 13.1.1998 / 18:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10258
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10259
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10260
_BigInteger_plumbInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10261
    UnimplementedNativeMethodSignal raiseRequest
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10262
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10263
    "Modified: / 12.11.1998 / 19:23:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10264
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10265
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10266
_ColorModel_deletepData:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10267
    "/ void deletepData ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10268
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10270
    "Created: / 12.11.1998 / 19:22:05 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10271
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10272
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10273
_ColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10274
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10275
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10276
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10277
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10278
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10279
_Constructor_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10280
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10281
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10282
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10283
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10284
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10285
    "Created: / 27.1.2000 / 02:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10286
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10287
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10288
_Constructor_newInstance:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10289
    "/ java.lang.Object newInstance (java.lang.Object[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10290
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10291
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10292
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10293
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10294
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10295
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10296
_Double_doubleToLongBits:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10297
    |f i|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10298
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10299
    f := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10300
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10301
    UninterpretedBytes isBigEndian ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10302
	i := f basicAt:8. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10303
	i := i bitOr:((f basicAt:7) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10304
	i := i bitOr:((f basicAt:6) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10305
	i := i bitOr:((f basicAt:5) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10306
	i := i bitOr:((f basicAt:4) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10307
	i := i bitOr:((f basicAt:3) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10308
	i := i bitOr:((f basicAt:2) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10309
	i := i bitOr:((f basicAt:1) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10310
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10311
	i := f basicAt:1. 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10312
	i := i bitOr:((f basicAt:2) bitShift:8).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10313
	i := i bitOr:((f basicAt:3) bitShift:16).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10314
	i := i bitOr:((f basicAt:4) bitShift:24).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10315
	i := i bitOr:((f basicAt:5) bitShift:32).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10316
	i := i bitOr:((f basicAt:6) bitShift:40).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10317
	i := i bitOr:((f basicAt:7) bitShift:48).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10318
	i := i bitOr:((f basicAt:8) bitShift:56).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10319
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10320
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10321
    ^ i.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10322
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10323
    "Created: / 4.1.1998 / 01:39:12 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10324
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10325
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10326
_Double_valueOf0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10327
    |s d|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10329
    s := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10330
    s notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10331
	s := Java as_ST_String:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10332
	d := Float readFrom:s onError:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10333
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10334
    d isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10335
	self throwNumberFormatException.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10336
	"/ not reached
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10337
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10339
    ^ d
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10340
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10341
    "Modified: / 8.8.1997 / 12:03:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10342
    "Created: / 7.1.1998 / 11:09:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10343
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10345
_Field_get:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10346
    "/ java.lang.Object get (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10347
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10348
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10350
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10351
    "Created: / 27.1.2000 / 03:04:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10352
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10354
_Field_getBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10355
    "/ boolean getBoolean (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10357
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10358
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10359
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10360
    "Created: / 27.1.2000 / 03:05:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10361
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10363
_Field_getByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10364
    "/ byte getByte (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10366
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10367
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10368
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10369
    "Created: / 27.1.2000 / 03:05:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10370
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10371
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10372
_Field_getChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10373
    "/ char getChar (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10374
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10375
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10377
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10378
    "Created: / 27.1.2000 / 03:03:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10379
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10380
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10381
_Field_getDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10382
    "/ double getDouble (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10383
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10384
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10385
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10386
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10387
    "Created: / 27.1.2000 / 03:07:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10388
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10389
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10390
_Field_getFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10391
    "/ float getFloat (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10393
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10394
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10395
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10396
    "Created: / 27.1.2000 / 03:05:41 / cg"
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
_Field_getInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10400
    "/ int getInt (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10401
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10402
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10404
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10405
    "Created: / 27.1.2000 / 03:04:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10406
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10407
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10408
_Field_getLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10409
    "/ long getLong (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10410
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10411
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10412
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10413
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10414
    "Created: / 27.1.2000 / 03:05:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10415
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10416
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10417
_Field_getModifiers:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10418
    "/ int getModifiers ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10419
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10420
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10422
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10423
    "Created: / 27.1.2000 / 03:07:03 / cg"
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
_Field_getShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10427
    "/ unsigned short getShort (java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10428
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10429
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10430
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10431
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10432
    "Created: / 27.1.2000 / 03:07:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10433
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10435
_Field_set:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10436
    "/ void set (java.lang.Object java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10438
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10439
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10440
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10441
    "Created: / 27.1.2000 / 03:04:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10442
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10443
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10444
_Field_setBoolean:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10445
    "/ void setBoolean (java.lang.Object boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10446
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10447
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10448
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10449
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10450
    "Created: / 27.1.2000 / 03:06:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10451
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10452
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10453
_Field_setByte:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10454
    "/ void setByte (java.lang.Object byte)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10455
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10456
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10458
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10459
    "Created: / 27.1.2000 / 03:06:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10460
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10462
_Field_setChar:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10463
    "/ void setChar (java.lang.Object char)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10465
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10466
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10467
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10468
    "Created: / 27.1.2000 / 03:03:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10469
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10470
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10471
_Field_setDouble:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10472
    "/ void setDouble (java.lang.Object double)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10473
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10474
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10475
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10476
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10477
    "Created: / 27.1.2000 / 03:04:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10478
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10479
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10480
_Field_setFloat:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10481
    "/ void setFloat (java.lang.Object float)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10482
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10483
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10484
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10485
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10486
    "Created: / 27.1.2000 / 03:06:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10487
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10488
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10489
_Field_setInt:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10490
    "/ void setInt (java.lang.Object int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10491
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10492
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10493
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10494
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10495
    "Created: / 27.1.2000 / 03:05:04 / 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
_Field_setLong:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10499
    "/ void setLong (java.lang.Object long)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10501
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10503
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10504
    "Created: / 27.1.2000 / 03:06:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10505
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10506
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10507
_Field_setShort:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10508
    "/ void setShort (java.lang.Object unsigned short)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10509
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10510
UnimplementedNativeMethodSignal raiseRequest.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10511
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10512
    "Modified: / 27.1.2000 / 02:53:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10513
    "Created: / 27.1.2000 / 03:03:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10514
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10516
_FileDescriptor_initSystemFD:nativeContext
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10517
    |descriptor fileNo myStream|
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10518
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10519
    descriptor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10520
    fileNo := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10521
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10522
    fileNo == 0 ifTrue:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10523
        myStream := Stdin
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10524
    ] ifFalse:[
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10525
        fileNo == 1 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10526
           myStream := JavaConsoleStream ? Stdout
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10527
        ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10528
            fileNo == 2 ifTrue:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10529
                myStream := JavaConsoleStream ? Stderr
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10530
            ] ifFalse:[
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10531
                self halt:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10532
                self internalError:'invalid fileNo given'.
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10533
            ]
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10534
        ]
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10535
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10536
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10537
    self setOpenFile:myStream at:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10539
    descriptor instVarNamed:'fd' put:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10540
    ^ descriptor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10541
1564
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10542
    "Modified: / 27-01-1998 / 18:15:28 / cg"
48e14e6b3eab - JavaFinalizationRegistry
vranyj1
parents: 1562
diff changeset
 10543
    "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
 10544
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10546
_FileDescriptor_valid:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10547
    "/ boolean valid ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10548
    |descriptor fileNo stream|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10550
    descriptor := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10551
    fileNo := descriptor instVarNamed:'fd'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10552
    stream := self getOpenFileAt:fileNo.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10553
    stream isNil ifTrue:[^ 0]. "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10554
    stream isOpen ifFalse:[^ 0].  "/ FALSE 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10555
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10556
    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10558
    "Modified: / 11.12.1998 / 13:02:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10559
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10561
_FileInputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10562
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10564
    "Created: / 4.1.1998 / 17:45:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10565
    "Modified: / 4.2.1998 / 15:20:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10566
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10568
_FileOutputStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10569
    ^ self anyStream_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10570
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10571
    "Created: / 13.1.1998 / 09:33:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10572
    "Modified: / 4.2.1998 / 15:20:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10573
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10575
_File_canRead0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10576
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10577
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10578
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10579
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10580
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10581
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10583
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10584
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10585
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10586
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10587
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10588
	(f := path asFilename) isReadable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10589
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10590
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10591
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10592
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10593
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10594
    "Created: / 4.1.1998 / 18:09:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10595
    "Modified: / 27.1.1999 / 18:57:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10596
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10597
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10598
_File_canWrite0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10599
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10601
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10602
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10603
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10604
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10605
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10606
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10607
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10608
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10609
	(f := path asFilename) isWritable ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10610
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10611
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10612
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10613
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10614
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10615
    "Created: / 4.2.1998 / 00:19:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10616
    "Modified: / 27.1.1999 / 18:57:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10617
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10618
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10619
_File_canonPath:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10620
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10621
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10622
    |jPath path realPath|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10623
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10624
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10625
    jPath isNil ifTrue:[^ jPath].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10626
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10627
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10628
    realPath := path asFilename pathName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10629
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10630
    ^ Java as_String:realPath
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10631
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10632
    "Created: / 27.1.1998 / 18:35:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10633
    "Modified: / 27.1.1998 / 21:36:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10634
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10635
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10636
_File_delete0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10637
    "/ boolean delete0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10638
    |oldFile oldPath oldF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10639
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10640
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10641
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10642
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10644
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10645
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10646
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10647
    oldF exists ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10648
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10649
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10650
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10651
    (self checkWritePermissionOfDirectory:oldF directory message:('JAVA Security check\\Delete of ''' , oldPath , '''.\Grant permission ?'))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10652
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10653
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10654
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10656
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10657
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10658
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10659
	oldF delete.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10660
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10661
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10662
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10664
    "Modified: / 30.12.1998 / 20:15:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10665
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10666
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10667
_File_exists0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10668
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10670
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10671
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10672
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10673
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10674
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10675
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10676
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10677
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10678
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10679
	    ^ 1 "TRUE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10680
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10681
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10682
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10684
    "Created: / 5.1.1998 / 02:07:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10685
    "Modified: / 27.1.1999 / 18:57:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10686
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10687
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10688
_File_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10689
    "/ introduced with jdk1.2 ... (sigh)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10691
    "Created: / 27.1.1998 / 18:25:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10692
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10693
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10694
_File_isAbsolute:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10695
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10696
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10697
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10698
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10699
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10700
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10701
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10702
	(f := path asFilename) isAbsolute ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10703
	    ^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10704
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10705
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10706
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10707
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10708
    "Created: / 11.1.1998 / 09:54:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10709
    "Modified: / 20.10.1998 / 20:59:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10710
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10712
_File_isDirectory0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10713
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10715
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10716
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10717
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10718
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10719
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10720
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10721
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10722
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10723
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10724
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10725
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10726
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10727
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10729
    "Created: / 7.1.1998 / 10:31:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10730
    "Modified: / 27.1.1999 / 18:58:01 / 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
_File_isFile0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10734
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10735
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10736
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10737
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10738
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10739
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10740
	    path storeString print. ' ' print. thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10741
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10742
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10743
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10744
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10745
	    f isDirectory ifFalse:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10746
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10747
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10748
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10750
    "Created: / 11.1.1998 / 11:40:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10751
    "Modified: / 27.1.1999 / 18:58:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10752
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10754
_File_lastModified0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10755
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10757
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10758
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10759
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10760
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10761
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10762
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10763
	    ^ f modificationTime getMilliseconds.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10764
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10765
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10766
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10767
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10768
    "Created: / 4.2.1998 / 16:50:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10769
    "Modified: / 20.10.1998 / 21:00:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10770
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10771
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10772
_File_length0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10773
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10775
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10776
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10777
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10778
	FileAccessTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10779
	    thisContext printCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10780
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10781
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10782
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10783
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10784
	    ^ f fileSize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10785
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10786
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10787
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10789
    "Created: / 7.1.1998 / 12:18:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10790
    "Modified: / 27.1.1999 / 18:57:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10791
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10793
_File_list0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10794
    |file path f files|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10795
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10796
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10797
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10798
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10799
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10800
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10801
	(f := path asFilename) exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10802
	    f isDirectory ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10803
		files := f directoryContents asArray.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10804
		files := files collect:[:nm | Java as_String:nm].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10805
		^ files
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10806
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10807
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10808
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10809
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10810
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10811
    "Created: / 14.1.1998 / 21:30:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10812
    "Modified: / 20.10.1998 / 21:00:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10813
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10814
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10815
_File_mkdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10816
    |file path f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10818
    file := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10819
    path := file instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10820
    path notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10821
	path := Java as_ST_String:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10822
	path := self fixFilename:path.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10823
	f := path asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10824
	(f exists and:[f isDirectory]) ifTrue:[
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
	FileOpenConfirmation ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10829
	    (self confirm:('JAVA Security check\\Create directory ''' , path , '''.\Grant permission ?') withCRs)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10830
	    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10831
		^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10832
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10833
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10834
	OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10835
	    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10836
	] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10837
	    f makeDirectory.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10838
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10839
	f  exists ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10840
	    f isDirectory ifTrue:[^ 1 "TRUE"]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10841
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10842
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10843
    ^ 0 "FALSE"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10844
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10845
    "Created: / 4.2.1998 / 00:19:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10846
    "Modified: / 4.12.1998 / 14:04:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10847
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10848
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10849
_File_renameTo0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10850
    "/ void renameTo0 (java.io.File)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10851
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10852
    |oldFile newFile oldPath newPath oldF newF|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10854
    oldFile := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10855
    oldPath := oldFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10856
    oldPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10857
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10858
    oldPath := Java as_ST_String:oldPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10859
    oldF := oldPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10861
    newFile := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10862
    newPath := newFile instVarNamed:'path'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10863
    newPath isNil ifTrue:[^ 0].    "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10864
    newPath := Java as_ST_String:newPath.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10865
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10866
    newF := newPath asFilename.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10867
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10868
    (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
 10869
    ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10870
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10871
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10872
    oldF directory pathName ~= newF directory pathName ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10873
	(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
 10874
	ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10875
	    ^ 0 "/ FALSE
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
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10879
    OperatingSystem accessDeniedErrorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10880
	^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10881
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10882
	oldF renameTo:newF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10883
	^ 1 "/ TRUE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10884
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10885
    ^ 0 "/ FALSE
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10886
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10887
    "Modified: / 3.12.1998 / 21:01:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10888
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10889
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10890
_File_rmdir0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10891
    "/ boolean rmdir0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10892
    UnimplementedNativeMethodSignal raiseRequest
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10893
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10894
    "Modified: / 12.11.1998 / 19:01:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10895
    "Created: / 12.11.1998 / 19:03:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10896
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10898
_Float_floatToIntBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10899
    |f i|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10901
    f := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10903
    UninterpretedBytes isBigEndian ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10904
	i := f basicAt:4. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10905
	i := i bitOr:((f basicAt:3) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10906
	i := i bitOr:((f basicAt:2) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10907
	i := i bitOr:((f basicAt:1) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10908
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10909
	i := f basicAt:1. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10910
	i := i bitOr:((f basicAt:2) bitShift:8).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10911
	i := i bitOr:((f basicAt:3) bitShift:16).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10912
	i := i bitOr:((f basicAt:4) bitShift:24).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10913
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10914
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10915
    ^ i.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10916
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10917
    "Created: / 4.1.1998 / 01:25:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10918
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 10919
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10920
_FontDescriptor_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10921
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10922
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10923
    "Created: / 28.1.1998 / 22:30:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10924
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10926
_Font_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10927
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10928
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10929
    "Created: / 27.1.1998 / 21:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10930
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10931
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10932
_GifImageDecoder_parseImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10933
    |decoder width height bool1 depth subHdrBytes dstBytes i1 i2 colorModel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10934
     stream byte compressedData compressedSize index count data 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10935
     leftOffs topOffs codeLen flags pixelStore clrModel t buffSize 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10936
     countGot countGot2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10937
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10938
    decoder := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10939
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10940
    i1 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10941
    i2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10942
    width := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10943
    height := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10944
    bool1 := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10945
    depth := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10946
    subHdrBytes := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10947
    dstBytes := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10948
    colorModel := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10949
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10950
    leftOffs := subHdrBytes wordAt:1 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10951
    topOffs := subHdrBytes wordAt:3 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10952
    width := subHdrBytes wordAt:5 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10953
    height := subHdrBytes wordAt:7 MSB:false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10954
    flags := subHdrBytes at:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10955
    codeLen := subHdrBytes at:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10956
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10957
    stream := decoder instVarNamed:'input'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10958
    pixelStore := decoder instVarNamed:'store'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10959
    pixelStore isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10960
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10961
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10962
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10963
    buffSize := (width * height // 2) max:4096.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10964
    compressedData := ByteArray uninitializedNew:buffSize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10965
    "get compressed data"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10966
    index := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10967
    count := stream perform:#'read()I'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10968
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10969
    [count notNil and:[count > 0]] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10970
	(index + count) > buffSize ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10971
	    t := ByteArray uninitializedNew:(buffSize * 2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10972
	    t replaceFrom:1 to:buffSize with:compressedData startingAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10973
	    compressedData := t.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10974
	    buffSize := buffSize * 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10975
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10976
	[count ~~ 0] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10977
	    countGot := stream 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10978
			perform:#'read([BII)I' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10979
			with:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10980
			with:index-1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10981
			with:count.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10983
	    countGot > 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10984
		count := count - countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10985
		index := index + countGot.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10986
	    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10987
		count := -1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10988
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10989
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10990
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10991
	count >= 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10992
	    count := stream perform:#read.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10993
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10994
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10995
    compressedSize := index - 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10996
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10997
    data := pixelStore perform:#'allocateLines(I)Ljava/lang/Object;' with:height.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10998
    (data isMemberOf:ByteArray) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 10999
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11000
	^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11001
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11002
"/    'GIFReader: decompressing ...' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11005
    GIFReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11006
	decompressGIFFrom:compressedData
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11007
	count:compressedSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11008
	into:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11009
	startingAt:1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11010
	codeLen:(codeLen + 1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11011
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11012
    clrModel := pixelStore instVarNamed:'colormodel'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11014
    pixelStore 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11015
	perform:#'setPixels(IIII[BII)Z'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11016
	withArguments:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11017
	    (Array 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11018
		with:0        "/ x
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11019
		with:0        "/ y
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11020
		with:width    "/ w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11021
		with:height   "/ h
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11022
		with:data
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11023
		with:0        "/ offs
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11024
		with:width).   "/ scanSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11026
    pixelStore  perform:#'imageComplete()V'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11027
"/        perform:#'imageComplete(I)V' 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11028
"/        with:((Java at:'java.awt.image.ImageConsumer') instVarNamed:'STATICIMAGEDONE').
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11029
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11030
"/ self internalError:'breakPoint'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11031
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11032
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11033
    "Modified: / 10.4.1998 / 14:31:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11034
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11035
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11036
_ImageRepresentation_disposeImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11037
    |imgRep img|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11038
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11039
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11040
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11041
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11042
    (img notNil and:[img ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11043
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11044
	    ImageStretchCache removeKey:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11045
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11046
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11047
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11048
    imgRep instVarNamed:'pData' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11049
"/    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11050
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11051
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11052
    "Modified: / 17.1.1998 / 13:26:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11053
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11054
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11055
_ImageRepresentation_finish:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11056
    |imgRep bool|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11057
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11058
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11059
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11060
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11061
"/    'JAVA: ImageRepresentation_finish ignored for now' infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11062
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11063
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11064
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11065
    "Created: / 8.1.1998 / 00:11:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11066
    "Modified: / 6.2.1998 / 02:12:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11067
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11068
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11069
_ImageRepresentation_imageDraw:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11070
    |imgRep x y img deviceImage jGraphics gc clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11071
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11072
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11073
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11074
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11075
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11076
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11077
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11078
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11079
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11080
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11081
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11082
    x := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11083
    y := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11084
    clr := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11086
    deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11087
    deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11088
	imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11089
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11090
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11091
    deviceImage displayOn:gc x:x y:y.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11092
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11093
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11094
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11095
    "Modified: / 25.11.1998 / 15:36:38 / 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
_ImageRepresentation_imageStretch:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11099
    |imgRep x1 y1 x2 y2 srcX1 srcY1 w h 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11100
     img deviceImage jGraphics gc clr stretchWidth stretchHeight|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11101
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11102
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11103
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11104
    (img isNil or:[img == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11105
	"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11106
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11107
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11108
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11109
    jGraphics := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11110
    gc := jGraphics instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11111
    gc realized ifFalse:[^ self].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11112
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11113
    x1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11114
    y1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11115
    x2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11116
    y2:= nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11117
    srcX1 := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11118
    srcY1 := nativeContext argAt:7.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11119
    w := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11120
    h := nativeContext argAt:9.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11121
    clr := nativeContext argAt:10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11122
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11123
    (srcX1 ~~ 0 or:[srcY1 ~~ 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11124
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11125
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11126
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11127
    (w ~~ img width or:[h ~~ img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11128
	self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11129
	^ self
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11130
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11131
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11132
    "/ TODO: remember magnified images somewhere for a while,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11133
    "/ to avoid repeated action ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11134
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11135
    stretchWidth := (x2-x1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11136
    stretchHeight := (y2-y1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11137
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11138
    (stretchWidth == img width
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11139
    and:[stretchHeight == img height]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11140
	deviceImage := img onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11141
	deviceImage ~~ img ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11142
	    imgRep instVarNamed:'pData' put:deviceImage.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11143
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11144
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11145
	ImageStretchCache notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11146
	    deviceImage := ImageStretchCache at:img ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11147
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11148
	(deviceImage isNil 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11149
	or:[deviceImage width ~~ stretchWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11150
	or:[deviceImage height ~~ stretchHeight]]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11151
	    deviceImage := (img magnifiedTo:stretchWidth@stretchHeight) onDevice:gc device.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11152
	    ImageStretchCache isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11153
		ImageStretchCache := WeakIdentityDictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11154
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11155
	    ImageStretchCache at:img put:deviceImage
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11156
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11157
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11158
    deviceImage displayOn:gc x:x1 y:y1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11159
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11160
    "Created: / 13.1.1998 / 13:32:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11161
    "Modified: / 15.1.1998 / 13:14:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11162
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11163
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11164
_ImageRepresentation_offscreenInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11165
    |imgRep jclr w h form screenDevice|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11166
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11167
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11168
    jclr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11169
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11170
    w := imgRep instVarNamed:'width'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11171
    h := imgRep instVarNamed:'height'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11173
    screenDevice := Screen current.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11174
    form := Form width:w height:h depth:(screenDevice depth) on:screenDevice.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11175
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11176
    imgRep instVarNamed:'pData' put:form.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11177
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11178
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11179
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11180
    "Modified: / 17.1.1998 / 12:36:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11181
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11182
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11183
_ImageRepresentation_setBytePixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11184
    |imgRep x y w h clrModel bytes offs i2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11185
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11186
     scanLineWidth nBytes srcIdx dstIdx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11187
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11188
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11189
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11190
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11191
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11192
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11193
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11194
    bytes := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11195
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11196
    scanLineWidth := nativeContext argAt:8.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11197
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11198
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11199
    (clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11200
	rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11201
	cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11202
	rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11203
	    keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11204
		cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11205
	    ].        
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
    opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11209
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11210
	transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11211
    ].
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 isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11215
"/        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11216
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11217
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11218
    (offs ~~ 0 or:[scanLineWidth ~~ w]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11219
	nBytes := ByteArray new:w*h.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11220
	srcIdx := offs+1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11221
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11222
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11223
	    nBytes replaceFrom:dstIdx to:(dstIdx+w-1) with:bytes startingAt:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11224
	    srcIdx := srcIdx + scanLineWidth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11225
	    dstIdx := dstIdx + w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11226
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11227
	bytes := nBytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11228
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11229
    img := Image width:w height:h depth:depth fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11230
    cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11231
	img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11232
	img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11233
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11234
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11235
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11236
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11237
		    for:bytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11238
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11239
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11240
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11242
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11243
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11245
    "Created: / 7.1.1998 / 22:31:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11246
    "Modified: / 21.10.1998 / 00:35:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11247
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11248
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11249
_ImageRepresentation_setIntPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11250
    |imgRep x y w h clrModel ints offs scanLineWidth
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11251
     img depth cmap rgbMap opaque transparentColorIndex
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11252
     bytes srcIdx dstIdx val red green blue
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11253
     redMask greenMask blueMask redShift greenShift blueShift|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11255
    imgRep := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11256
    x := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11257
    y := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11258
    w := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11259
    h := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11260
    clrModel := nativeContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11261
    ints := nativeContext argAt:6.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11262
    offs := nativeContext argAt:7.  "/ offset ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11263
    scanLineWidth := nativeContext argAt:8.  "/ scanLineWidth ??
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11264
    opaque := false.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11265
offs ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11266
 self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11267
].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11268
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11269
    depth := clrModel instVarNamed:'pixel_bits'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11270
    clrModel class == (Java at:'java.awt.image.DirectColorModel') ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11271
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11272
	(clrModel instVarNamed:'map_size') ~~ 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11273
	    rgbMap := clrModel instVarNamed:'rgb'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11274
	    cmap := Array new:rgbMap size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11275
	    rgbMap 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11276
		keysAndValuesDo:[:idx :rgb |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11277
		    cmap at:idx put:(Color rgbValue:(rgb bitAnd:16rFFFFFF))
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11278
		].        
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11279
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11280
	opaque := (clrModel instVarNamed:'opaque') ~~ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11281
	opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11282
	    transparentColorIndex := clrModel instVarNamed:'transparent_index'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11283
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11284
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11286
    img := imgRep instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11287
    (img isNil or:[img == 0]) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11288
"/        self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11289
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11290
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11291
    depth == 32 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11292
	"/ temporary kludge - ony use 24 bits/pixel
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11293
	bytes := ByteArray new:w*h*3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11294
	srcIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11295
	dstIdx := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11296
	redMask := clrModel instVarNamed:'red_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11297
	greenMask := clrModel instVarNamed:'green_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11298
	blueMask := clrModel instVarNamed:'blue_mask'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11299
	redShift := (clrModel instVarNamed:'red_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11300
	greenShift := (clrModel instVarNamed:'green_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11301
	blueShift := (clrModel instVarNamed:'blue_offset') negated.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11302
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11303
	1 to:h do:[:y |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11304
	    1 to:w do:[:x |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11305
		val := ints at:srcIdx.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11306
		red := (val bitAnd:redMask) bitShift:redShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11307
		green := (val bitAnd:greenMask) bitShift:greenShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11308
		blue := (val bitAnd:blueMask) bitShift:blueShift.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11309
		bytes at:dstIdx put:red.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11310
		bytes at:dstIdx+1 put:green.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11311
		bytes at:dstIdx+2 put:blue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11312
		dstIdx := dstIdx + 3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11313
		srcIdx := srcIdx + 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11314
	    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11315
	    srcIdx := srcIdx + (scanLineWidth - w).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11316
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11317
	img := Depth24Image width:w height:h depth:24 fromArray:bytes.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11318
	img photometric:#rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11319
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11320
	scanLineWidth ~~ w ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11321
	    self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11322
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11323
	img := Image width:w height:h depth:depth fromArray:ints.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11324
	cmap notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11325
	    img colorMap:cmap.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11326
	    img photometric:#palette
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11327
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11328
	    img photometric:#rgb
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11329
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11330
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11331
    opaque ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11332
	img mask:(ImageReader 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11333
		    buildMaskFromColor:transparentColorIndex 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11334
		    for:ints
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11335
		    width:w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11336
		    height:h)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11337
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11338
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11339
    imgRep instVarNamed:'pData' put:img.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11340
    ^ 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11342
    "Created: / 1.2.1998 / 17:38:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11343
    "Modified: / 21.10.1998 / 00:35:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11344
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11345
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11346
_InetAddressImpl_getHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11347
    "/ java.lang.String getHostByAddr (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11348
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11350
    "Created: / 12.11.1998 / 19:08:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11351
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11352
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11353
_InetAddressImpl_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11354
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11355
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11356
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11357
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11358
    "Created: / 5.1.1998 / 02:05:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11359
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11361
_InetAddressImpl_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11362
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11363
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11364
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11366
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11367
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11368
    ^ (Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11370
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11371
    "Created: / 5.1.1998 / 02:07:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11372
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11374
_InetAddressImpl_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11375
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11377
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11379
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11380
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11381
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11382
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11383
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11384
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11385
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11386
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11387
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11388
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11389
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11390
    "Created: / 7.1.1998 / 18:51:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11391
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11393
_InetAddressImpl_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11394
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11395
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11396
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11398
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11399
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11401
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11402
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11403
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11404
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11405
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11406
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11407
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11408
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11409
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11410
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11411
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11412
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11413
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11414
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11415
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11416
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11418
    "Created: / 5.1.1998 / 02:06:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11419
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11420
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11422
_InetAddress_getInetFamily:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11423
    "/ self unimplementedNativeMethod.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11424
    ^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11425
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11426
    "Modified: / 15.8.1997 / 17:04:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11427
    "Created: / 17.11.1998 / 23:54:38 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11428
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11429
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11430
_InetAddress_getLocalHostName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11431
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11432
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11433
    |hostName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11435
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11436
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11437
    ^ Java as_String:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11438
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11439
    "Modified: / 7.8.1997 / 21:16:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11440
    "Created: / 17.11.1998 / 23:54:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11441
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11442
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11443
_InetAddress_lookupAllHostAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11444
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11445
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11446
    |jAddrImpl jHostName hostName addrBytes|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11447
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11448
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11449
    jHostName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11450
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11451
    hostName := Java as_ST_String:jHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11452
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11453
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11454
	addrBytes := #[0 0 0 0] copy
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11455
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11456
    ^ Array with:addrBytes
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11458
    "Modified: / 8.8.1997 / 12:04:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11459
    "Created: / 17.11.1998 / 23:56:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11460
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11461
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11462
_InetAddress_lookupHostByAddr:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11463
    "java.lang.Object[] lookupHostByAddr (int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11464
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11465
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11466
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11467
    "Created: / 27.1.2000 / 02:59:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11468
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11470
_InetAddress_lookupHostByName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11471
    "java.lang.Object[] lookupHostByName (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11472
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11473
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11474
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11475
    "Modified: / 27.1.2000 / 02:58:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11476
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11477
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11478
_InetAddress_makeAnyLocalAddress:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11479
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11480
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11481
    |jAddrImpl jAddr hostName addrBytes address|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11482
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11483
    jAddrImpl := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11484
    jAddr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11485
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11486
    hostName := OperatingSystem getHostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11487
    addrBytes := Socket ipAddressOfHost:hostName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11488
    addrBytes isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11489
	addrBytes := #[127 0 0 0].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11490
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11491
    "/ MSB first into an integer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11492
    address := (addrBytes at:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11493
    address := (address bitShift:8) bitOr:(addrBytes at:2).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11494
    address := (address bitShift:8) bitOr:(addrBytes at:3).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11495
    address := (address bitShift:8) bitOr:(addrBytes at:4).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11496
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11497
    jAddr instVarNamed:'hostName' put:(Java as_String:hostName).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11498
    jAddr instVarNamed:'address' put:address.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11499
    jAddr instVarNamed:'family' put:0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11500
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11501
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11503
    "Modified: / 21.10.1998 / 03:30:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11504
    "Created: / 17.11.1998 / 23:54:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11505
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11506
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11507
_Inflater_end0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11508
    "/ void end0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11509
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11510
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11511
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11512
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11513
    "Created: / 27.1.2000 / 03:11:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11514
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11515
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11516
_Inflater_getAdler0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11517
    "/ int getAdler0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11519
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11520
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11521
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11522
    "Created: / 27.1.2000 / 03:12:15 / 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
_Inflater_getTotalIn0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11526
    "/ int getTotalIn0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11527
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11528
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11529
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11530
    "Created: / 27.1.2000 / 03:10:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11531
    "Modified: / 27.1.2000 / 03:11:08 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11532
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11533
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11534
_Inflater_getTotalOut0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11535
    "/ int getTotalOut0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11536
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11537
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11538
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11539
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11540
    "Created: / 27.1.2000 / 03:12:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11541
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11542
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11543
_Inflater_inflate0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11544
    "/ int inflate0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11545
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11546
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11547
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11548
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11549
    "Created: / 27.1.2000 / 03:11:39 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11550
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11551
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11552
_Inflater_reset0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11553
    "/ void reset0 ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11554
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11555
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11556
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11557
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11558
    "Created: / 27.1.2000 / 03:11:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11559
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11560
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11561
_Inflater_setDictionary0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11562
    "/ void setDictionary0 (byte[] int int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11563
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11564
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11565
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11566
    "Modified: / 27.1.2000 / 03:08:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11567
    "Created: / 27.1.2000 / 03:10:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11568
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11569
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11570
_InputThread_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11571
    self _WToolkit_eventLoop:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11572
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11573
    "Created: / 28.1.1998 / 22:34:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11574
    "Modified: / 28.1.1998 / 22:35:16 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11575
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11576
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11577
_Introspector_getMethodDescriptor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11578
    "java.lang.String getMethodDescriptor (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11579
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11580
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11581
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11582
    "Created: / 27.1.2000 / 02:47:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11583
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11584
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11585
_Introspector_getMethodParameterCount:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11586
    "int getMethodParameterCount (java.lang.reflect.Method)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11587
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11588
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11589
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11590
    "Created: / 27.1.2000 / 02:49:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11591
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11592
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11593
_Introspector_getPublicDeclaredMethods0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11594
    "java.lang.reflect.Method[] getPublicDeclaredMethods0 (java.lang.Class)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11595
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11596
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11598
    "Created: / 27.1.2000 / 02:48:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11599
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11600
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11601
_JPEGImageDecoder_readImage:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11602
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11603
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11604
    "Created: / 12.11.1998 / 18:53:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11605
    "Modified: / 12.11.1998 / 18:53:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11606
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11608
_MButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11609
    ^ self _WButtonPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11610
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11611
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11612
_MCanvasPeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11613
    |jCanvasPeer jFrame frame subView|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11614
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11615
    jCanvasPeer := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11616
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11617
    jFrame := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11618
    jFrame isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11619
	self halt:'no frame in canvasPeer create'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11620
	self internalError:'no frame in canvasPeer create'.     
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11621
	^ self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11622
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11623
    frame := jFrame instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11624
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11625
    subView := JavaView in:frame.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11626
    subView delegate:self.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11627
    subView javaPeer:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11629
    self createdWindowsView:subView for:jCanvasPeer.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11630
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11631
    WindowCreationTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11632
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11633
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11634
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11635
    "Modified: / 16.1.1998 / 13:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11636
    "Created: / 18.11.1998 / 00:14:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11637
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11638
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11639
_MComponentPeer_cacheInit:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11640
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11641
    "Created: / 28.1.1998 / 22:22:30 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11642
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11643
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11644
_MComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11645
    ^ self _WComponentPeer_handleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11646
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11647
    "Created: / 18.11.1998 / 00:21:17 / 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
_MComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11651
    ^ self _WComponentPeer_nativeHandleEvent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11652
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11653
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11654
_MComponentPeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11655
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11656
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11657
    "Created: / 18.11.1998 / 00:15:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11658
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11659
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11660
_MComponentPeer_pInitialize:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11661
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11662
    "Created: / 28.1.1998 / 22:27:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11663
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11664
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11665
_MComponentPeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11666
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11667
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11668
    "Created: / 18.11.1998 / 00:18:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11669
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11670
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11671
_MComponentPeer_pSetBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11672
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11673
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11674
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11675
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11676
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11677
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11678
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11679
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11680
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11681
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11682
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11683
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11684
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11685
    view backgroundPaint:clr.
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
_MComponentPeer_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11689
    |view jFont stFont name style size|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11690
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11691
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11692
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11693
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11694
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11695
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11696
        name := jFont instVarNamed:'name'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11697
        style := jFont instVarNamed:'style'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11698
        size := jFont instVarNamed:'size'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11699
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11700
        stFont := self replacementFontFor:(Java as_ST_String:name) style:style size:size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11701
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11702
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11703
    view font:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11704
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11705
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11706
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11707
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11708
_MComponentPeer_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11709
    |view jClr rgb clr|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11710
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11711
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11712
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11713
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11715
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11716
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11717
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11718
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11719
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11720
        view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11721
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11722
    view foregroundColor:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11723
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11725
_MComponentPeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11726
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11727
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11728
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11729
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11730
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11731
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11732
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11733
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11734
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11736
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11737
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11738
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11739
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11740
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11741
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11742
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11743
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11744
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11745
    "Created: / 18.11.1998 / 00:21:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11746
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11747
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11748
_MComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11749
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11750
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11751
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11752
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11753
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11754
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11755
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11756
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11757
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11758
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11759
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11760
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11761
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11762
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11763
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11764
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11765
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11766
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11767
    "Created: / 17.11.1998 / 23:49:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11768
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11769
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11770
_MComponentPeer_setCursor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11771
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11772
    "Created: / 28.1.1998 / 22:27:35 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11773
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11775
_MComponentPeer_setFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11776
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11777
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11778
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11779
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11780
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11781
    "Modified: / 25.1.1998 / 01:22:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11782
    "Created: / 17.11.1998 / 23:43:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11783
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11784
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11785
_MComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11786
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11788
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11789
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11790
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11791
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11792
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11793
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11794
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11795
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11797
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11799
    "Created: / 17.11.1998 / 23:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11800
    "Modified: / 17.11.1998 / 23:57:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11801
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11802
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11803
_MFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11804
    ^ self _WFramePeer_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11805
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11806
    "Created: / 28.1.1998 / 22:25:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11807
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11808
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11809
_MFramePeer_getWindowBackgroundColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11810
    ^ View defaultViewBackgroundColor rgbValue.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11812
    "Created: / 17.11.1998 / 23:55:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11813
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11814
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11815
_MFramePeer_pHide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11816
    ^ self _WComponentPeer_hide:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11817
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11818
    "Created: / 28.1.1998 / 22:27:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11819
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11821
_MFramePeer_pReshape:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11822
    self commonReshapeComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11823
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11824
    "Created: / 28.1.1998 / 22:28:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11825
    "Modified: / 28.1.1998 / 22:29:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11826
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11827
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11828
_MFramePeer_pSetTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11829
    self _WWindowPeer__setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11830
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11831
    "Created: / 28.1.1998 / 22:30:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11832
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11833
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11834
_MFramePeer_pShow:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11835
    |view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11836
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11837
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11838
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11839
    "/ frame views are under my browsers own control
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11840
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11841
	view beVisible.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11842
	view realize.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11843
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11844
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11845
"/    view windowGroup notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11846
"/        windowServer addGroup:(view windowGroup)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11847
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11848
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11849
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11850
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11851
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11852
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11853
    "Modified: / 25.1.1998 / 09:54:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11854
    "Created: / 18.11.1998 / 00:19:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11855
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11856
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11857
_MFramePeer_setInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11858
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11859
    "Created: / 17.11.1998 / 23:55:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11860
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11861
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11862
_MFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11863
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11864
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11865
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11866
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11867
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11868
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11869
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11870
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11871
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11872
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11873
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11874
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11875
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11876
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11877
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11878
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11879
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11880
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11881
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11882
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11884
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11885
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11886
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11887
    "Created: / 17.11.1998 / 23:51:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11888
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11889
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11890
_MToolkit_callbackLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11891
    | toolKit |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11892
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11893
    ^ self.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11894
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11895
        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
 11896
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11897
    self halt.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11898
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11899
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11900
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11901
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11902
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11903
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11904
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11905
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11906
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11907
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11908
    "Created: / 17-11-1998 / 23:58:33 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11909
    "Modified: / 08-01-1999 / 17:08:35 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11910
    "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
 11911
!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11912
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11913
_MToolkit_eventLoop: nativeContext 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11914
    | toolKit |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11915
    (JavaEventThread notNil and: [ JavaEventThread isDead not ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11916
        'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11917
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11918
    toolKit := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11919
    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
 11920
    "self wakeup: toolKit."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11921
    self halt.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11922
    JavaEventThread := Processor activeProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11923
    [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11924
        [ true ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11925
            AbortSignal handle: [:ex | ex return ] do: [ self doWindowsEventThread. ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11926
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11927
    ] valueNowOrOnUnwindDo: [ JavaEventThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11928
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11929
    "Created: / 17-11-1998 / 23:04:29 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11930
    "Modified: / 08-01-1999 / 17:08:21 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 11931
    "Modified: / 22-11-2011 / 13:24:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11932
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11933
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11934
_MToolkit_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11935
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11936
    "Created: / 28.1.1998 / 22:21:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11937
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11939
_MToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11940
    ^ self _WToolkit_loadSystemColors:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11941
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11942
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11943
_MToolkit_run:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11944
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11945
    "Created: / 28.1.1998 / 22:22:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11946
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 11947
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11948
_Math_IEEEremainder:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11949
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11951
    "Created: / 12.11.1998 / 18:52:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11952
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11954
_Math_acos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11955
    "arc cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11956
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11957
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11959
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11960
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11961
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11962
"/            'JAVAVM [info]: missing double flag in Math>>acos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11963
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11964
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11965
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11966
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11967
    ^ dVal arcCos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11968
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11969
    "Created: / 7.5.1998 / 00:34:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11970
    "Modified: / 11.11.1998 / 15:08:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11971
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11972
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11973
_Math_asin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11974
    "arc sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11975
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11976
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11977
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11978
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11979
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11980
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11981
"/            'JAVAVM [info]: missing double flag in Math>>asin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11982
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11983
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11984
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11985
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11986
    ^ dVal arcSin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11987
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11988
    "Created: / 7.5.1998 / 00:34:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11989
    "Modified: / 11.11.1998 / 15:08:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11990
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11991
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11992
_Math_atan2:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11993
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11994
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11995
    "Created: / 12.11.1998 / 18:52:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11996
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11997
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11998
_Math_atan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 11999
    "arc tangens"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12000
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12001
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12002
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12003
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12004
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12005
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12006
"/            'JAVAVM [info]: missing double flag in Math>>atan' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12007
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12008
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12009
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12010
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12011
    ^ dVal arcTan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12013
    "Created: / 6.2.1998 / 01:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12014
    "Modified: / 11.11.1998 / 15:08:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12015
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12017
_Math_ceil:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12018
    "ceiling"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12020
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12022
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12023
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12024
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12025
"/            'JAVAVM [info]: missing double flag in Math>>ceil' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12026
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12027
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12028
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12029
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12030
    ^ dVal ceilingAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12032
    "Created: / 7.1.1998 / 15:43:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12033
    "Modified: / 11.11.1998 / 15:08:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12034
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12035
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12036
_Math_cos:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12037
    "cosine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12038
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12039
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12040
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12041
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12042
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12043
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12044
"/            'JAVAVM [info]: missing double flag in Math>>cos' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12045
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12046
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12047
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12048
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12049
    ^ dVal cos
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12050
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12051
    "Created: / 7.1.1998 / 15:41:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12052
    "Modified: / 11.11.1998 / 15:07:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12053
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12055
_Math_exp:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12056
    "exponential"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12057
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12058
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12059
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12060
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12061
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12062
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12063
"/            'JAVAVM [info]: missing double flag in Math>>exp' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12064
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12065
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12066
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12067
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12068
    ^ dVal exp
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12070
    "Created: / 7.5.1998 / 00:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12071
    "Modified: / 11.11.1998 / 15:07:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12072
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12074
_Math_floor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12075
    "floor"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12077
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12079
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12080
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12081
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12082
"/            'JAVAVM [info]: missing double flag in Math>>floor' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12083
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12084
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12085
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12086
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12087
    ^ dVal floorAsFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12089
    "Created: / 7.1.1998 / 19:09:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12090
    "Modified: / 11.11.1998 / 15:07:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12091
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12093
_Math_log:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12094
    "natural logarithm"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12095
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12096
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12098
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12099
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12100
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12101
"/            'JAVAVM [info]: missing double flag in Math>>log' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12102
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12103
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12104
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12105
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12106
    ^ dVal ln
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12108
    "Created: / 7.1.1998 / 15:42:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12109
    "Modified: / 30.12.1998 / 17:41:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12112
_Math_pow:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12113
    "power"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12115
    |dVal1 dVal2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12116
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12117
    dVal1 := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12118
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12119
"/        dVal1 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12120
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12121
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12122
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12123
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12124
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12125
    dVal2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12126
"/    (nativeContext argAt:4) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12127
"/        dVal2 isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12128
"/            'JAVAVM [info]: missing double flag in Math>>pow' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12129
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12130
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12131
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12132
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12133
    ^ dVal1 raisedTo:dVal2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12134
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12135
    "Created: / 7.1.1998 / 15:44:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12136
    "Modified: / 11.11.1998 / 15:07:33 / cg"
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
_Math_rint:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12140
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12142
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12143
    ^ dVal rounded asFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12144
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12146
_Math_sin:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12147
    "sine"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12148
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12149
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12151
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12152
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12153
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12154
"/            'JAVAVM [info]: missing double flag in Math>>sin' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12155
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12156
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12157
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12158
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12159
    ^ dVal sin
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12161
    "Created: / 7.1.1998 / 15:41:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12162
    "Modified: / 11.11.1998 / 15:07:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12163
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12165
_Math_sqrt:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12166
    "square root"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12167
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12168
    |dVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12169
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12170
    dVal := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12171
"/    (nativeContext argAt:2) ~~ DUMMY_DOUBLE_HIGHWORD ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12172
"/        dVal isReal ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12173
"/            'JAVAVM [info]: missing double flag in Math>>sqrt' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12174
"/        ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12175
"/            self halt:'expected double arg'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12176
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12177
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12179
    "/ how about domain errors ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12180
    dVal < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12181
	^ 0.0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12182
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12183
    ^ dVal sqrt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12184
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12185
    "Created: / 7.1.1998 / 15:42:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12186
    "Modified: / 29.12.1998 / 13:22:36 / 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_tan:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12190
    "tangent"
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>>tan' 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 tan
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12204
    "Created: / 7.5.1998 / 00:34:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12205
    "Modified: / 11.11.1998 / 15:07:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12206
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12207
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12208
_MemoryAdvice_register0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12209
    "private native void register0()"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12210
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12211
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12212
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12213
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12214
_Method_getModifiers:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12215
    |jMethod mthd retVal|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12217
    jMethod := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12218
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12219
    mthd := JavaMethods at:jMethod ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12220
    mthd isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12221
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12222
	^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12223
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12224
    ^ mthd accessFlags
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12226
    "Modified: / 9.4.1998 / 17:50:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12227
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12228
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12229
_MozillaAppletContext_pMochaOnLoad:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12230
    |id|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12231
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12232
    id := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12233
"/ 'JAVA: MozillaAppletContext_pMochaOnLoad: ' print. id printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12234
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12235
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12236
    "Created: / 6.1.1998 / 20:37:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12237
    "Modified: / 6.2.1998 / 02:13:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12238
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12239
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12240
_MozillaAppletContext_pShowDocument:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12241
    |jAppletContext s1 s2 s3 js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12242
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12243
    jAppletContext := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12244
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12245
    s1 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12246
    js := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12247
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12248
    js := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12249
    s2 := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12250
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12251
    "/ somehow pass it to the html browser ....
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12252
Transcript show:'pShowDocument: '; show:s1; show:' / '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12253
	   show:s2; show:' / '; showCR:s3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12254
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12255
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12256
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12257
    "Created: / 29.3.1998 / 15:53:17 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12258
    "Modified: / 29.12.1998 / 13:32:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12259
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12261
_MozillaAppletContext_pShowStatus:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12262
    |s js|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12264
    js := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12265
    js isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12266
	s := ''
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12267
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12268
	s := Java as_ST_String:js.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12269
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12270
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12271
    self activityNotification:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12272
"/ Transcript showCR:s.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12273
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12274
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12275
    "Created: / 6.1.1998 / 18:31:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12276
    "Modified: / 22.10.1998 / 01:17:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12277
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12278
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12279
_MozillaAppletContext_setConsoleState0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12280
    "/ void setConsoleState0 (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12281
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12282
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12283
    "Created: / 12.11.1998 / 19:23:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12284
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12285
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12286
_ObjectInputStream_allocateNewArray:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12287
    "/ java.lang.Object allocateNewArray (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12288
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12289
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12290
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12291
    "Created: / 12.11.1998 / 19:02:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12292
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12293
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12294
_ObjectInputStream_allocateNewObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12295
    "/ java.lang.Object allocateNewObject (java.lang.Class java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12296
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12297
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12298
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12299
    "Created: / 12.11.1998 / 19:02:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12300
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12301
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12302
_ObjectInputStream_inputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12303
    "/ void inputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12304
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12305
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12306
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12307
    "Created: / 12.11.1998 / 19:02:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12308
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12309
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12310
_ObjectInputStream_invokeDefaultReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12311
    "/ void invokeDefaultReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12312
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12313
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12314
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12315
    "Created: / 27.1.2000 / 03:00:47 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12316
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12317
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12318
_ObjectInputStream_invokeObjectReader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12319
    "/ boolean invokeObjectReader (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12320
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12321
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12322
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12323
    "Created: / 12.11.1998 / 19:03:06 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12324
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12325
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12326
_ObjectInputStream_invokeReadObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12327
    "/ void invokeReadObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12328
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12329
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12330
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12331
    "Created: / 27.1.2000 / 03:01:02 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12332
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12333
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12334
_ObjectInputStream_loadClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12335
    "/ java.lang.Class loadClass0 (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12336
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12337
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12338
    "Created: / 12.11.1998 / 19:01:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12339
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12340
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12341
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12342
_ObjectOutputStream_invokeDefaultWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12343
    "/ void invokeDefaultWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12344
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12345
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12346
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12347
    "Created: / 27.1.2000 / 03:01:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12348
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12349
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12350
_ObjectOutputStream_invokeObjectWriter:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12351
    "/ boolean invokeObjectWriter (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12352
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12353
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12354
    "Created: / 12.11.1998 / 19:00:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12355
    "Modified: / 12.11.1998 / 19:01:45 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12356
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12357
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12358
_ObjectOutputStream_invokeWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12359
    "/ void invokeWriteObject (java.lang.Object java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12360
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12361
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12362
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12363
    "Created: / 27.1.2000 / 03:01:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12364
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12366
_ObjectOutputStream_outputClassFields:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12367
    "/ void outputClassFields (java.lang.Object java.lang.Class int[])
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12368
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12369
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12370
    "Created: / 12.11.1998 / 19:00:09 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12371
    "Modified: / 12.11.1998 / 19:01:42 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12372
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12373
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12374
_ObjectStreamClass_doMismatchedRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12375
    "/ void doMismatchedRead (java.io.ObjectInputStream java.lang.Object)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12376
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12377
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12378
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12379
    "Created: / 27.1.2000 / 02:50:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12380
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12381
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12382
_ObjectStreamClass_findObjectMethod0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12383
    "/ boolean findObjectMethod0 (java.lang.Class int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12384
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12385
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12386
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12387
    "Created: / 27.1.2000 / 02:51:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12388
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12389
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12390
_ObjectStreamClass_getClassAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12391
    "/ int getClassAccess (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12392
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12393
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12394
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12395
    "Created: / 12.11.1998 / 19:04:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12396
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12397
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12398
_ObjectStreamClass_getClassDefinedUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12399
    "/ long getClassDefinedUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12400
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12401
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12402
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12403
    "Created: / 27.1.2000 / 02:51:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12404
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12405
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12406
_ObjectStreamClass_getFieldAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12407
    "/ int getFieldAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12408
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12409
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12410
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12411
    "Created: / 12.11.1998 / 19:05:19 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12412
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12413
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12414
_ObjectStreamClass_getFieldSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12415
    "/ java.lang.String[] getFieldSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12416
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12418
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12419
    "Created: / 12.11.1998 / 19:05:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12420
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12421
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12422
_ObjectStreamClass_getFields0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12423
    "/ java.io.ObjectStreamField[] getFields0 (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12424
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12425
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12426
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12427
    "Created: / 12.11.1998 / 19:05:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12428
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12429
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12430
_ObjectStreamClass_getMethodAccess:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12431
    "/ int getMethodAccess (java.lang.Class java.lang.String)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12432
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12433
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12434
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12435
    "Created: / 12.11.1998 / 19:04:51 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12436
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12437
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12438
_ObjectStreamClass_getMethodSignatures:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12439
    "/ java.lang.String[] getMethodSignatures (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12440
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12441
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12442
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12443
    "Created: / 12.11.1998 / 19:04:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12444
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12445
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12446
_ObjectStreamClass_getSerialVersionUID:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12447
    "/ long getSerialVersionUID (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12448
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12449
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12450
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12451
    "Created: / 12.11.1998 / 19:05:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12452
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12453
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12454
_ObjectStreamClass_hasWriteObject:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12455
    "/ boolean hasWriteObject (java.lang.Class)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12456
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12457
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12458
    "Modified: / 12.11.1998 / 19:01:48 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12459
    "Created: / 12.11.1998 / 19:05:53 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12460
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12461
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12462
_OffScreenImageSource_sendPixels:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12463
    "/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12464
    "/ UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12465
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12466
    "Modified: / 16.1.1998 / 18:22:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12467
    "Created: / 17.1.1998 / 12:36:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12468
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12469
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12470
_PackedColorModel_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12471
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12472
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12473
    "Created: / 28.1.1998 / 22:19:35 / cg"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12474
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12475
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12476
_PlainDatagramSocketImpl_bind:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12477
    |jsock jaddr port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12479
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12480
    port := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12481
    jaddr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12483
    hostName := jaddr instVarNamed:'hostName'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12484
    hostName isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12485
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12486
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12487
	hostName := Java as_ST_String:hostName
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12488
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12489
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12490
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12491
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12492
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12493
	    ('JAVA: socket bind to ' , hostName printString, ' port ' , port printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12494
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12496
	ok := sock bindTo:port address:nil "hostName".
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12497
	ok ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12498
	    err := OperatingSystem lastErrorString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12499
	    Transcript showCR:'sock err: ' , err printString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12500
	    self throwIOExceptionWithMessage:'bind failed'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12501
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12502
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12503
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12504
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12505
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12506
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12508
_PlainDatagramSocketImpl_join:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12509
    "/ native void join (InetAddress arg1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12511
    |jsock addr sock ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12513
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12514
    addr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12516
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12517
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12518
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12519
	    ('JAVA: socket join ' , addr printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12520
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12521
	self throwIOExceptionWithMessage:'unimplemented: join'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12522
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12523
	^ nil.  "/ void
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12524
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12525
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12526
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12527
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12528
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12529
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12530
_PlainDatagramSocketImpl_receive:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12531
    |jsock jdatagramPacket sock ok|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12532
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12533
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12534
    jdatagramPacket := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12536
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12537
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12538
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12539
	    ('JAVA: socket receive') infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12540
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12541
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12542
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12543
    ^ -1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12545
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12546
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12547
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12548
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12549
_PlainDatagramSocketImpl_socketGetOption:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12550
    |jsock opt port sock hostName ok err|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12551
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12552
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12553
    opt := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12554
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12555
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12556
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12557
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12558
	    ('JAVA: socket getOption ' , opt printString) infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12559
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12560
	self throwIOExceptionWithMessage:'unimplemented: getOption'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12561
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12562
	^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12563
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12564
    ^ -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12565
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12566
    "Created: / 4.2.1998 / 15:06:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12567
    "Modified: / 30.12.1998 / 20:10:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12568
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12569
1112
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12570
_PlainSocketImpl_socketAvailable:nativeContext
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12571
    |jSock sock n|
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12572
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12573
    jSock := nativeContext receiver.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12574
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12575
    sock := self validateFile:jSock.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12576
    sock isNil ifTrue:[
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12577
	self throwIOExceptionWithMessage:'socketAvailable on closed socket'.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12578
	^ self.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12579
    ].
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12580
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12581
    n := sock numAvailable.
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12582
    ^ n
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12583
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12584
    "Created: / 4.2.1998 / 16:58:49 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12585
    "Modified: / 30.12.1998 / 20:10:08 / cg"
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12586
!
bcacdf94b551 Few fixes in natives.
vranyj1
parents: 1110
diff changeset
 12587
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12588
_PlainSocketImpl_socketClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12589
    |jsock sock|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12591
    jsock := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12592
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12593
    sock := self validateFile:jsock.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12594
    sock notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12595
	FileIOTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12596
	    'JAVA: close socket' infoPrintCR
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12597
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12598
	sock close.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12599
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12600
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12601
    "Modified: / 21.8.1997 / 17:09:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12602
    "Created: / 25.1.1998 / 20:04:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12603
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12604
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12605
_PlatformFont_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12606
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12607
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12608
    "Created: / 28.1.1998 / 22:30:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12609
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12610
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12611
_PrintStream_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12612
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12613
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12614
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12615
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12616
    "Created: / 27.1.2000 / 03:00:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12617
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12618
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12619
_RandomAccessFile_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12620
    ^ self anyStream_close:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12621
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12622
    "Created: / 4.2.1998 / 13:26:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12623
    "Modified: / 4.2.1998 / 15:21:08 / 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
_Runtime_buildLibName:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12627
    |jPath jFileName path fileName libName|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12628
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12629
    jPath := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12630
    jFileName := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12631
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12632
    path := Java as_ST_String:jPath.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12633
    fileName := Java as_ST_String:jFileName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12634
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12635
    path = '__builtIn__' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12636
	libName := path , '/' , fileName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12637
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12638
	libName := path , '/lib' , fileName , '.so'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12639
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12640
    ^ Java as_String:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12641
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12642
    "Modified: / 8.8.1997 / 12:05:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12643
    "Created: / 4.1.1998 / 19:07:14 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12644
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12645
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12646
_Runtime_execInternal: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12647
    "Run a unix-command; return a process object."
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12648
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12649
    | cmdAndArgArray  envArray  cmd  jProcessClass  jProcess |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12650
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12651
    cmdAndArgArray := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12652
    envArray := nativeContext argAt: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12653
    cmd := cmdAndArgArray at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12654
    OperatingSystem isUNIXlike ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12655
        jProcessClass := self classForName: 'java.lang.UNIXProcess'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12656
    ] ifFalse: [ jProcessClass := Java classForName: 'java.lang.Win32Process'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12657
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12658
"/
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12659
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12660
    jProcessClass notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12661
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12662
        jProcess := jProcessClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12663
        jProcess 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12664
            perform: #'<init>([Ljava/lang/String;[Ljava/lang/String;)V'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12665
            with: cmdAndArgArray
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12666
            with: envArray.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12667
        ^ jProcess
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12668
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12669
    self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12670
    self 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 12671
        throwIOExceptionWithMessage: 'Process execution disabled/unimplemented'.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12672
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 12673
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12674
    "Created: / 15.1.1998 / 01:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12675
    "Modified: / 11.12.1998 / 13:09:36 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12676
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12677
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12678
_Runtime_initializeLinkerInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12679
    "init sharedLib linker, return searchPath as javaString"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12681
    |path|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12683
    "/ mhmh - what is done here ?
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12684
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12685
    path := ''.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12686
    LibPath do:[:comp | path size == 0 ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12687
			    path := path , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12688
			] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12689
			    path := path , ':' , comp
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12690
			]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12691
	       ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12692
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12693
    ^ Java as_String:path
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12694
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12695
    "Modified: / 7.8.1997 / 21:17:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12696
    "Created: / 4.1.1998 / 17:53:15 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12697
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12698
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12699
_Runtime_isInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12700
    "/ boolean isInputStreamLocalised (java.io.DataInputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12701
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12702
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12703
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12704
    "Created: / 27.1.2000 / 03:03:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12705
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12706
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12707
_Runtime_isOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12708
    "/ boolean isOutputStreamLocalised (java.io.DataOutputStream)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12709
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12710
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12711
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12712
    "Created: / 27.1.2000 / 03:02:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12713
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12714
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12715
_Runtime_loadFileInternal:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12716
    "load a sharedLib, return boolean 0 (false) if fail; 1 (true) if ok"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12717
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12718
    |ret|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12720
    ret := self _Runtime_loadFileInternalI:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12721
    ret < 0 ifTrue:[ ret := 0 ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12722
    ^ ret
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12723
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12724
    "Created: / 4.1.1998 / 19:10:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12725
    "Modified: / 4.1.1998 / 19:11:04 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12726
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12727
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12728
_Runtime_loadFileInternalI:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12729
    "1.1b3 change; load a sharedLib like 'loadFileInternal',
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12730
     but return integer:
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12731
	-1   outOfMemory error
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12732
	0    failed to load
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12733
	1    loaded or already loaded (i.e. ok)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12734
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12735
    |jLibName libName libHandle|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12736
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12737
    jLibName := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12738
    libName := Java as_ST_String:jLibName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12739
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12740
    (SimulatedLibs includes:libName) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12741
"/        ('JAVA: builtIn libLoad simulated: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12742
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12743
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12744
    (LoadedLibs notNil and:[LoadedLibs includesKey:libName]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12745
"/        ('JAVA: already loaded: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12746
	^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12747
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12748
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12749
    libName asFilename exists ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12750
	('JAVA: no file to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12751
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12752
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12753
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12754
    (self confirm:'permission to load native library: ' , libName , ' ?') ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12755
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12756
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12757
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12758
    libHandle := ObjectFileLoader loadLibrary:libName.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12759
    libHandle isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12760
	('JAVA: failed to load: ' , libName) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12761
	^ 0
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12762
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12763
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12764
    LoadedLibs isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12765
	LoadedLibs := Dictionary new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12766
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12767
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12768
    LoadedLibs at:libName put:libHandle.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12769
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12770
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12771
    "Created: / 4.1.1998 / 19:10:54 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12772
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12773
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12774
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12775
_Runtime_runFinalization:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12776
    "/ void runFinalization ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12777
"/    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12778
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12779
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12780
    "Created: / 12.11.1998 / 18:59:01 / 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
_Runtime_runFinalizersOnExit0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12784
    ""
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12785
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12786
    |onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12787
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12788
    onOff := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12789
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12790
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12791
    "Modified: / 6.2.1998 / 03:11:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12792
    "Created: / 15.10.1998 / 23:34:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12793
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12794
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12795
_Runtime_setInputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12796
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12797
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12798
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12799
    "Modified: / 27.1.2000 / 03:02:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12800
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12801
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12802
_Runtime_setOutputStreamLocalised:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12803
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12804
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12805
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12806
    "Modified: / 27.1.2000 / 03:02:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12807
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12808
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12809
_Runtime_totalMemory:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12810
    "free memory - Returns the total number of bytes"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12811
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12812
    ^ ObjectMemory oldSpaceSize + ObjectMemory newSpaceSize
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12813
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12814
    "Created: / 12.1.1998 / 12:59:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12815
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12816
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12817
_Runtime_traceInstructions:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12818
    "/ void traceInstructions (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12819
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12820
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12821
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12822
    "Created: / 12.11.1998 / 18:59:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12823
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12824
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12825
_Runtime_traceMethodCalls:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12826
    "/ void traceMethodCalls (boolean)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12827
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12828
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12829
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12830
    "Created: / 12.11.1998 / 18:59:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12831
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12832
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12833
_ScrollPane_initIDs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12834
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12835
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12836
    "Created: / 28.1.1998 / 22:19:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12837
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12838
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12839
_SecurityManager_classDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12840
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12841
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12842
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12843
    "Created: / 12.11.1998 / 18:56:27 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12844
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12845
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12846
_SecurityManager_classLoaderDepth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12847
    |con depth|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12848
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12849
    con := thisContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12850
    depth := 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12851
    [con notNil] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12852
	con receiver == JavaClassReader classLoaderQuerySignal ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12853
	    con selector == #handle:do: ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12854
		depth := depth + 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12855
	    ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12856
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12857
	con := con sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12858
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12859
'JAVA: classLoaderDepth -> ' infoPrint. depth infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12860
    ^ depth.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12861
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12862
    "Created: / 13.1.1998 / 09:21:46 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12863
    "Modified: / 13.1.1998 / 09:33:43 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12864
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12865
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12866
_SecurityManager_currentClassLoader:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12867
    |loader|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12868
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12869
    loader := JavaClassReader classLoaderQuerySignal query.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12870
"/ 'JAVA: currentClassLoader -> ' infoPrint. loader displayString infoPrintCR.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12871
    ^ loader.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12872
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12873
    "Created: / 13.1.1998 / 09:23:28 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12874
    "Modified: / 11.12.1998 / 12:39:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12875
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12876
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12877
_SecurityManager_currentLoadedClass0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12878
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12879
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12880
    "Modified: / 12.11.1998 / 18:52:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12881
    "Created: / 12.11.1998 / 18:56:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12882
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12883
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12884
_SocketInputStream_socketRead:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12885
    ^ self anyStream_readBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12886
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12887
    "Created: / 25.1.1998 / 20:56:53 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12888
    "Modified: / 4.2.1998 / 15:52:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12889
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12890
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12891
_SocketOutputStream_socketWrite:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12892
    ^ self anyStream_writeBytes:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12893
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12894
    "Created: / 25.1.1998 / 21:06:55 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12895
    "Modified: / 4.2.1998 / 15:52:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12896
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12897
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12898
_String_compareTo:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12899
    "int compareTo (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12900
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12901
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12902
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12903
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12904
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12905
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12906
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12907
    "Created: / 27.1.2000 / 02:28:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12908
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12909
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12910
_String_equals:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12911
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12912
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12913
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12914
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12915
    ^ (jString1 instVarAt:1) = (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12916
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12917
    "Created: / 18.11.1998 / 00:52:03 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12918
    "Modified: / 18.11.1998 / 00:53:01 / cg"
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
_String_equalsIgnoreCase:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12922
    "boolean equalsIgnoreCase (java.lang.String)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12923
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12924
    |jString1 jString2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12925
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12926
self halt:'untested'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12927
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12928
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12929
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12930
    ^ (jString1 instVarAt:1) sameAs: (jString2 instVarAt:1)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12931
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12932
    "Modified: / 18.11.1998 / 00:53:01 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12933
    "Created: / 27.1.2000 / 02:27:46 / cg"
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
_String_indexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12937
    "int indexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12938
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12939
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12940
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12941
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12942
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12943
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12944
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12945
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12946
    "Created: / 27.1.2000 / 02:30:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12947
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12948
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12949
_String_lastIndexOf:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12950
    "int lastIndexOf (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12951
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12952
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12953
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12954
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12955
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12956
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12957
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12958
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12959
    "Created: / 27.1.2000 / 02:33:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12960
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12961
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12962
_String_length:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12963
    |jString|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12964
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12965
    jString := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12966
    ^ (jString instVarAt:3)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12967
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12968
    "Created: / 18.11.1998 / 00:53:50 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12969
    "Modified: / 18.11.1998 / 00:54:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12970
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12971
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12972
_String_regionMatches2:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12973
    "boolean regionMatches (boolean int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12974
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12975
    |jString1 bool jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12976
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12977
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12978
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12979
    jString2 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12980
    idx1 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12981
    idx2 := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12982
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12983
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12984
    "Created: / 27.1.2000 / 02:33:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12985
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12986
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12987
_String_regionMatches:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12988
    "boolean regionMatches (int java.lang.String int int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12989
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12990
    |jString1 jString2 idx1 idx2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12991
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12992
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12993
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12994
    idx1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12995
    idx2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12996
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12998
    "Created: / 27.1.2000 / 02:32:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 12999
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13001
_String_startsWith:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13002
    "boolean startsWith (java.lang.String int)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13003
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13004
    |jString1 jString2 idx|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13005
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13006
    jString1 := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13007
    jString2 := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13008
    idx := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13009
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13010
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13011
    "Created: / 27.1.2000 / 02:31:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13012
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13013
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13014
_SystemColor_GetSysColor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13015
    "/ int GetSysColor (int)
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13016
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13017
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13018
    "Created: / 27.1.2000 / 02:44:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13019
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13020
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13021
_SystemResourceManager_getEntryFromKey:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13022
    "get a resource by name"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13023
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13024
    |key s|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13025
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13026
    key := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13027
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13028
    s := Java effectiveClassPath at:(key+1) ifAbsent:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13029
    s isNil ifTrue:[^ nil].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13030
    ^ Java as_String:s
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13031
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13032
    "Modified: / 22-11-2010 / 13:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13033
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13034
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13035
_SystemResourceManager_validateSystemResource:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13036
    "check a resource"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13037
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13038
    |bool str1 str2|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13039
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13040
    bool := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13041
    str1 := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13042
    str2 := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13043
    ^ 1 "/ true
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13044
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13045
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13046
_System_getCallerClass:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13047
    "/ introduced with jdk1.2
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13048
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13049
    |senderContext cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13050
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13051
    senderContext := nativeContext sender.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13052
    [senderContext receiver == (Java at:'java.lang.System')] whileTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13053
	senderContext := senderContext sender.
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
    senderContext method isStatic ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13057
	cls := senderContext receiver
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13058
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13059
	cls := senderContext receiver class
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13060
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13061
    cls isJavaClass ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13062
	^ self javaClassObjectForClass:cls
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13063
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13064
    (cls isMemberOf:(Java at:'java.lang.Class')) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13065
	^ Java at:'java.lang.Class'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13066
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13067
    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13068
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13069
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13070
    "Modified: / 27.1.1998 / 18:33:13 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13071
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13072
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13073
_System_validateSecurityManager:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13074
    "void validateSecurityManager (java.lang.SecurityManager)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13075
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13076
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13077
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13078
    "Created: / 27.1.2000 / 02:43:25 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13079
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13080
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13081
_ThreadGroup_initMainThreadGroup0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13082
    "void initMainThreadGroup0 (java.lang.ThreadGroup)"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13083
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13084
UnimplementedNativeMethodSignal raise.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13085
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13086
    "Created: / 27.1.2000 / 02:45:52 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13087
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13088
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13089
_Thread_countStackFrames:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13090
    "/ int countStackFrames ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13091
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13092
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13093
    "Created: / 12.11.1998 / 19:06:21 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13094
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13095
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13096
_Thread_start: nativeContext 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13097
    "start the thread"
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13098
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13099
    | jThread  jName  name  stProcess |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13100
    jThread := nativeContext receiver.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13101
    (jThread instVarNamed: 'priority') < 1 ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13102
        self halt.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13103
        jThread instVarNamed: 'priority' put: 1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13104
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13105
    stProcess := JavaProcess 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13106
                for: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13107
                    | procName |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13108
                    Object abortSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13109
                        handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13110
                            :ex | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13111
                            procName := stProcess name.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13112
                            (procName startsWith: 'JAVA-AWT-EventQueue') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13113
                                ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13114
                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13115
                                ex restart.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13116
                            ] ifFalse: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13117
                                (stProcess == JavaScreenUpdaterThread 
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13118
                                    or: [ stProcess == JavaEventQueueThread ]) 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13119
                                        ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13120
                                            ('JAVA [info]: thread ' , procName , ' aborted - restarting process.') 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13121
                                                infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13122
                                            ex restart
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13123
                                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13124
                                        ifFalse: [ ('JAVA [info]: thread ' , procName , ' aborted.') infoPrintCR. ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13125
                            ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13126
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13127
                        do: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13128
                            [
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13129
                                JavaVM javaExceptionSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13130
                                    handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13131
                                        :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13132
                                        | exClass |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13133
                                        procName := stProcess name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13134
                                        exClass := ex parameter class.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13135
                                        exClass == (Java at: 'java.lang.ThreadDeath') ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13136
                                            ('JAVA: thread ' , procName , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13137
                                        ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13138
                                            Transcript 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13139
                                                showCR: ('JAVA: thread ''' , procName , ''' terminated with exception: ' 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13140
                                                        , exClass name).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13141
                                        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13142
                                        ex return.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13143
                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13144
                                    do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13145
                                        Object messageNotUnderstoodSignal 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13146
                                            handle: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13147
                                                :ex | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13148
                                                | 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13149
                                                "/ remap doesNotUnderstand with nil-receiver to
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13150
                                                "/ a nullPointerException ...
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13151
                                                 con  m |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13152
                                                con := ex suspendedContext.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13153
                                                con receiver isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13154
                                                    ((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
 13155
                                                        self throwNullPointerException.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13156
                                                        AbortSignal raise.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13157
                                                        
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13158
                                                        "/ ex proceed.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13159
                                                    ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13160
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13161
                                                ex reject.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13162
                                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13163
                                            do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13164
                                                "/ 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
 13165
                                                jThread perform: #'run()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13166
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13167
                                                    ('JAVA: thread ' , stProcess name , ' terminated') infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13168
                                                ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13169
                                                jThread perform: #'exit()V'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13170
                                                ThreadTrace == true ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13171
                                                    ('JAVA: after exit of thread ' , stProcess name) infoPrintCR.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13172
                                                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13173
                                            ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13174
                                    ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13175
                            ] ensure: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13176
                                | monitors |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13177
                                monitors := EnteredMonitorsPerProcess at: stProcess ifAbsent: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13178
                                monitors notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13179
                                    monitors do: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13180
                                        :obj | 
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13181
                                        | mon |
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13182
                                        mon := self monitorFor: obj.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13183
                                        mon notNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13184
                                            mon owningProcess == stProcess ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13185
                                                ('JAVA: release monitor owned by dying thread: ' , stProcess name) 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13186
                                                    infoPrintCR.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13187
                                                mon exit
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13188
                                            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13189
                                        ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13190
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13191
                                    EnteredMonitorsPerProcess removeKey: stProcess.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13192
                                    stProcess == JavaScreenUpdaterThread ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13193
                                        JavaScreenUpdaterThread := nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13194
                                    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13195
                                    stProcess == JavaEventQueueThread ifTrue: [ JavaEventQueueThread := nil. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13196
                                    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13197
"/                                    screenUpdaterClass := Java at:'sun.awt.ScreenUpdater'.    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13198
"/                                    screenUpdaterClass notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13199
"/                                        screenUpdaterClass instVarNamed:'updater' put:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13200
"/                                    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13201
                                ].
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13202
                                Java removeThread: jThread ifAbsent: [].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13203
                            ]
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13204
                        ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13205
                ]
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13206
                priority: (Processor activePriority).
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13207
    jName := jThread instVarNamed: 'name'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13208
    jName isString ifFalse: [ name := Java as_ST_String: jName. ] ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13209
        name := jName
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13210
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13211
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13212
    "/ kludge - remember the ScreenUpdater ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13213
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13214
    name = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13215
        name = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13216
            (name startsWith: 'AWT-EventQueue') ifTrue: [
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13217
                JavaEventQueueThread := stProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13218
            ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13219
        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13220
    ].
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13221
    
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13222
"/name = 'UserDialogShowThread' ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13223
"/self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13224
"/].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13225
    "/ when that process terminates, wakup any waiters
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13226
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13227
    stProcess addExitAction: [ self notify: jThread ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13228
    stProcess name: 'JAVA-' , name.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13229
    stProcess restartable: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13230
    stProcess resume.
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13231
    Java addThread: jThread for: stProcess.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13232
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13233
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13234
    "Created: / 03-01-1998 / 02:05:52 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 13235
    "Modified: / 24-12-1999 / 03:14:33 / cg"
1249
3c82fe50483c IllegalMonitorStateException bug FIXED :)
hlopkmar
parents: 1248
diff changeset
 13236
    "Modified: / 09-12-2011 / 12:52:27 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13237
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13238
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13239
_Thread_suspend0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13240
    "yield"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13241
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13242
    |jThread stProcess|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13243
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13244
    jThread := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13245
    stProcess := JavaVM stProcessForJavaThread:jThread.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13246
    stProcess isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13247
	ThreadTrace == true ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13248
	    ('JAVA: no stProcess for javaThread: ' , jThread displayString) printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13249
	].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13250
	^ nil "void"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13251
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13252
    stProcess suspend
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13253
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13254
    "Created: / 8.1.1998 / 01:05:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13255
    "Modified: / 6.2.1998 / 02:15:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13256
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13257
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13258
_Throwable_printStackTrace0:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13259
    |out outStream exceptionObject contextList|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13260
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13261
    outStream := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13262
    exceptionObject := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13263
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13264
    contextList := exceptionObject instVarNamed:'backtrace'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13265
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13266
    out := self javaConsoleStream.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13267
    out cr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13268
    out nextPutLine:'JAVA: stackTrace:'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13269
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13270
    contextList do:[:con |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13271
	out 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13272
	    nextPutAll:'  '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13273
	    nextPutAll:(con method javaClass fullName);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13274
	    nextPutAll:'.';
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13275
	    nextPutAll:(con method selector);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13276
	    nextPutAll:' ['; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13277
	    nextPutAll:(con method javaClass sourceFile); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13278
	    nextPutAll:' '; 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13279
	    nextPutAll:(con quickLineNumber displayString); 
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13280
	    nextPutAll:']'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13281
	out cr
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13282
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13283
    out nextPutLine:'----------------------------------------------------'
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13284
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13285
    "Created: / 4.1.1998 / 14:27:40 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13286
    "Modified: / 10.11.1998 / 14:19:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13287
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13288
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13289
_URLConnection_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13290
    "/ void close ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13291
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13292
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13293
    "Created: / 12.11.1998 / 19:26:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13294
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13295
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13296
_URLConnection_finalize:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13297
    "/ void finalize ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13298
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13299
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13300
    "Created: / 12.11.1998 / 19:25:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13301
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13302
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13303
_URLConnection_getContentLength0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13304
    "/ int getContentLength0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13305
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13307
    "Created: / 12.11.1998 / 19:25:34 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13308
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13309
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13310
_URLConnection_getContentType0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13311
    "/ java.lang.String getContentType0 ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13312
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13314
    "Created: / 12.11.1998 / 19:25:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13315
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13317
_URLConnection_getHeaderField0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13318
    "/ java.lang.String getHeaderField0 (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13319
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13321
    "Created: / 12.11.1998 / 19:25:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13322
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13323
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13324
_URLConnection_pCreate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13325
    "/ void pCreate (java.lang.String java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13326
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13327
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13328
    "Created: / 12.11.1998 / 19:25:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13329
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13330
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13331
_URLInputStream_available:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13332
    "/ int available ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13333
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13335
    "Created: / 12.11.1998 / 19:24:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13336
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13338
_URLInputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13339
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13340
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13341
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13342
    "Created: / 12.11.1998 / 19:24:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13343
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13345
_URLInputStream_read:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13346
    "/ int read (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13347
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13348
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13349
    "Created: / 12.11.1998 / 19:24:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13350
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13352
_URLOutputStream_open:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13353
    "/ void open ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13354
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13356
    "Created: / 12.11.1998 / 19:24:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13357
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13359
_URLOutputStream_pClose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13360
    "/ void pClose ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13361
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13362
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13363
    "Created: / 12.11.1998 / 19:25:02 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13364
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13365
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13366
_URLOutputStream_write:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13367
    "/ void write (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13368
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13370
    "Created: / 12.11.1998 / 19:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13371
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13372
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13373
_URLOutputStream_writeBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13374
    "/ void writeBytes (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13375
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13377
    "Created: / 12.11.1998 / 19:24:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13378
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13380
_URLStreamHandlerFactory_pInit:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13381
    "/ self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13383
    "Created: / 10.1.1998 / 15:47:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13384
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13385
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13386
_URLStreamHandlerFactory_pSupportsProtocol:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13387
    "/ boolean pSupportsProtocol (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13388
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13389
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13390
    "Created: / 12.11.1998 / 19:23:43 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13391
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13392
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13393
_VM_getState:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13394
    "/ int getState ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13395
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13396
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13397
    "Created: / 12.11.1998 / 19:06:44 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13398
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13399
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13400
_VM_resetJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13401
    "/ void resetJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13402
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13403
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13404
    "Created: / 14.11.1998 / 10:43:23 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13405
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13406
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13407
_VM_resumeJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13408
    "/ void resumeJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13409
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13410
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13411
    "Created: / 14.11.1998 / 10:42:49 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13412
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13413
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13414
_VM_suspendJavaMonitor:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13415
    "/ void suspendJavaMonitor ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13416
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13417
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13418
    "Created: / 14.11.1998 / 10:43:07 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13419
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13420
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13421
_VM_threadsSuspended:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13422
    "/ boolean threadsSuspended ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13423
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13424
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13425
    "Created: / 12.11.1998 / 19:07:10 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13426
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13427
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13428
_VM_unsuspendSomeThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13429
    "/ void unsuspendSomeThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13430
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13431
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13432
    "Created: / 12.11.1998 / 19:07:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13433
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13434
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13435
_VM_unsuspendThreads:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13436
    "/ void unsuspendThreads ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13437
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13438
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13439
    "Created: / 12.11.1998 / 19:07:20 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13440
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13441
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13442
_VM_writeJavaMonitorReport:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13443
    "/ void writeJavaMonitorReport ()
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13444
    UnimplementedNativeMethodSignal raise
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13445
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13446
    "Created: / 14.11.1998 / 10:43:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13447
!
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13448
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13449
_WButtonPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13450
    |jButtonPeer jButton jFrame frame button
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13451
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13452
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13453
    jButtonPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13454
    jButton := jButtonPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13456
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13457
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13459
    button := Button in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13460
    button sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13461
    button action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13462
			jButtonPeer perform:#'handleAction()V'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13463
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13464
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13465
    lbl := jButton instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13466
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13467
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13468
	button label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13469
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13470
    self createdWindowsView:button for:jButtonPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13472
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13473
	'WButtonPeer_create: ' print. frame print. ' -> ' print. button printNL.
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
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13477
    "Modified: / 11.12.1998 / 00:19:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13478
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13479
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13480
_WButtonPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13481
    |label jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13482
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13483
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13485
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13486
    label label:(Java as_ST_String:jString)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13487
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13488
    "Modified: / 8.1.1998 / 17:35:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13489
    "Created: / 1.2.1998 / 17:05:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13490
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13491
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13492
_WCanvasPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13493
    |jCanvasPeer jFrame frame subView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13494
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13495
    jCanvasPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13496
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13497
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13498
    jFrame isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13499
	self halt:'no frame in canvasPeer create'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13500
	subView := JavaView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13501
"/        self internalError:'no frame in canvasPeer create'.     
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13502
"/        ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13503
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13504
	frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13505
	subView := JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13506
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13508
    subView delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13509
    subView javaPeer:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13510
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13511
    self createdWindowsView:subView for:jCanvasPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13513
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13514
	'WCanvasPeer_create: ' print. frame print. ' -> ' print. subView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13515
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13516
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13517
    "Created: / 5.1.1998 / 00:59:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13518
    "Modified: / 16.1.1998 / 13:40:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13519
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13520
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13521
_WCheckboxMenuItemPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13522
    "/ void setState (boolean)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13523
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13524
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13525
    "Created: / 12.11.1998 / 19:14:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13526
    "Modified: / 3.12.1998 / 21:41:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13527
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13528
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13529
_WCheckboxPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13530
    |jCheckboxPeer jCheckbox jFrame frame checkBox lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13532
    jCheckboxPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13533
    jCheckbox := jCheckboxPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13535
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13536
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13538
    checkBox := CheckBox in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13539
    checkBox action:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13540
			jCheckboxPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13541
			    perform:#'handleAction(Z)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13542
			    with:(checkBox isOn ifTrue:[1] ifFalse:[0])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13543
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13544
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13545
    lbl := jCheckbox instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13546
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13547
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13548
	checkBox label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13549
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13550
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13551
    self createdWindowsView:checkBox for:jCheckboxPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13552
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13553
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13554
	'WCheckboxPeer_create: ' print. frame print. ' -> ' print. checkBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13555
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13556
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13557
    "Created: / 7.1.1998 / 21:48:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13558
    "Modified: / 15.1.1998 / 12:27:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13559
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13561
_WCheckboxPeer_setCheckboxGroup:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13562
    |checkBox jGroup|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13563
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13564
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13565
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13566
    jGroup := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13568
    "Created: / 7.1.1998 / 21:48:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13569
    "Modified: / 25.1.1998 / 01:20:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13570
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13572
_WCheckboxPeer_setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13573
    "/ void setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13574
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13575
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13576
    "Created: / 12.11.1998 / 19:14:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13577
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13579
_WCheckboxPeer_setState:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13580
    |checkBox state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13581
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13582
    checkBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13583
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13584
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13585
    state ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13586
	checkBox turnOn
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13587
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13588
	checkBox turnOff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13589
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13591
    "Created: / 7.1.1998 / 21:49:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13592
    "Modified: / 25.1.1998 / 01:26:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13593
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13595
_WChoicePeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13596
    |jString index comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13597
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13598
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13599
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13600
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13601
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13602
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13603
    comboBox model list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13604
    comboBox model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13605
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13606
    "Created: / 7.1.1998 / 21:45:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13607
    "Modified: / 24.1.1998 / 18:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13608
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13610
_WChoicePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13611
    |jChoicePeer jChoice jFrame frame comboBox|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13612
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13613
    jChoicePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13614
    jChoice := jChoicePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13615
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13616
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13617
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13618
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13619
    comboBox := ComboListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13620
    comboBox model:(SelectionInList new list:(OrderedCollection new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13621
    comboBox action:[:index | 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13622
			jChoicePeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13623
			    perform:#'handleAction(I)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13624
			    with:(comboBox model selectionIndex - 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13625
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13627
    self createdWindowsView:comboBox for:jChoicePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13629
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13630
	'WChoicePeer_create: ' print. frame print. ' -> ' print. comboBox printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13631
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13632
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13633
    "Created: / 7.1.1998 / 21:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13634
    "Modified: / 28.1.1998 / 23:19:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13635
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13636
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13637
_WChoicePeer_remove:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13638
    "/ void remove (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13639
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13640
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13641
    "Created: / 12.11.1998 / 19:12:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13642
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13643
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13644
_WChoicePeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13645
    self commonReshapeComponent:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13646
"/    self pReshape:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13647
    ^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13648
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13649
    "Created: / 7.1.1998 / 21:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13650
    "Modified: / 23.12.1998 / 19:08:07 / 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
_WChoicePeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13654
    |comboBox index|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13656
    comboBox := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13657
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13658
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13659
    comboBox model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13660
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13661
    "Created: / 7.1.1998 / 21:45:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13662
    "Modified: / 25.1.1998 / 09:55:05 / 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
_WClipboard_getClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13666
    "/ java.lang.String getClipboardText ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13667
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13668
    |str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13670
    str := Screen current rootView getTextSelection.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13671
    str isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13672
	str := ''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13673
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13674
    ^ Java as_String:''.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13675
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13676
    "Modified: / 10.12.1998 / 21:28:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13677
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13678
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13679
_WClipboard_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13680
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13681
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13682
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13683
    "Created: / 4.1.1998 / 19:03:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13684
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13685
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13686
_WClipboard_setClipboardText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13687
    "/ void setClipboardText (java.awt.datatransfer.StringSelection)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13688
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13689
    |strSel data|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13691
    strSel := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13692
    data := strSel instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13693
    data class == (Java at:'java.lang.String') ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13694
	Screen current rootView setTextSelection:(Java as_ST_String:data)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13695
    ].
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:15:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13699
    "Modified: / 10.12.1998 / 21:25:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13700
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13701
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13702
_WColor_getDefaultColor: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13703
    | clrIndex  jClr  clr |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13704
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13705
    clrIndex := nativeContext argAt: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13706
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13707
    "/ windows defaults:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13708
    "/  1: view background
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13709
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13710
    clrIndex == 1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13711
        clr := View defaultViewBackgroundColor.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13712
        clr isColor ifFalse: [ clr := Color gray: 50. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13713
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13714
    clrIndex == 2 ifTrue: [ clr := Color black. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13715
    clr isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13716
        self halt.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13717
        self internalError: 'breakpoint'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13718
        ^ nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13719
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13720
    clr := clr on: (Screen current).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13721
    jClr := (self classForName: 'java.awt.Color') new.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13722
    jClr instVarNamed: 'pData' put: clr.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13723
    jClr instVarNamed: 'value' put: (clr rgbValue).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13724
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13725
"/ self halt.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13726
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13727
    ^ jClr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13729
    "Created: / 15.8.1997 / 15:38:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13730
    "Modified: / 4.1.1998 / 18:06:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13731
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13733
_WComponentPeer__beginValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13734
    "/ void _beginValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13735
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13737
    "Created: / 12.11.1998 / 19:10:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13738
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13740
_WComponentPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13741
    |view jPeer|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13743
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13745
    Object errorSignal catch:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13746
	view destroy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13747
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13748
    JavaWindowGroup removeView:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13749
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13750
    jPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13751
    jPeer instVarNamed:'pData' put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13753
    "Created: / 7.1.1998 / 22:36:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13754
    "Modified: / 25.1.1998 / 16:43:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13755
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13757
_WComponentPeer__setBackground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13758
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13760
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13761
    view isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13762
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13763
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13764
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13765
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13766
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13767
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13769
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13771
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13772
"/        view viewBackground:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13773
"/        view backgroundPaint:(view superView viewBackground).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13774
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13775
"/        (view isMemberOf:JavaView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13776
"/            view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13777
"/            view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13778
"/        ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13779
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13780
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13781
    (view isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13782
	view := view scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13783
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13784
    view viewBackground:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13785
    view backgroundPaint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13786
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13787
    "Created: / 4.1.1998 / 18:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13788
    "Modified: / 4.12.1998 / 17:26:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13789
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13790
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13791
_WComponentPeer__setForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13792
    |rgb clr view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13793
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13794
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13795
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13796
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13797
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13798
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13799
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13800
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13801
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13802
    clr := clr on:(view device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13803
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13804
    view paint:clr.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13805
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13806
    "Created: / 4.1.1998 / 18:08:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13807
    "Modified: / 8.1.1998 / 17:32:45 / 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
_WComponentPeer_disable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13811
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13812
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13813
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13814
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13815
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13816
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13817
	view disable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13818
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13820
    "Created: / 6.1.1998 / 18:26:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13821
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13822
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13823
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13824
_WComponentPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13825
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13826
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13827
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13829
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13830
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13831
	view enable
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13832
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13833
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13834
    "Modified: / 8.1.1998 / 17:32:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13835
    "Created: / 13.1.1998 / 23:08: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
_WComponentPeer_endValidate:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13839
    "/ void endValidate ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13840
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13841
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13842
    "Created: / 12.11.1998 / 19:10:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13843
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13844
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13845
_WComponentPeer_getLocationOnScreen: nativeContext 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13846
    "/ java.awt.Point getLocationOnScreen ()
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13847
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13848
    | view  p  jP |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13849
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13850
    view := self viewForWPeer: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13851
    view isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13852
    p := view originRelativeTo: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13853
    jP := (self classForName: 'java.awt.Point') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13854
    jP instVarNamed: 'x' put: p x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 13855
    jP instVarNamed: 'y' put: p y.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13856
    ^ jP
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13857
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13858
    "Modified: / 5.12.1998 / 14:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13859
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13860
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13861
_WComponentPeer_handleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13862
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13863
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13864
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13865
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13866
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13867
    |view jEv stEv ignore|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13868
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13869
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13870
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13871
	jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13872
	stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13873
	(stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13874
	    ignore := true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13875
	    view isJavaView ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13876
		ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13877
	    ] ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13878
		view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13879
		    stEv type == #terminate ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13880
			ignore := false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13881
		    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13882
		]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13883
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13885
	    ignore ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13886
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13887
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13888
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13889
		view dispatchEvent:stEv. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13890
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13891
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13893
	    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13894
		('JAVA: WComponent - handleEvent ignored:' , stEv type) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13895
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13896
	    ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13897
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13898
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13899
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13900
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13901
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13903
    "Created: / 6.1.1998 / 21:10:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13904
    "Modified: / 11.12.1998 / 01:04:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13905
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13906
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13907
_WComponentPeer_hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13908
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13910
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13911
"/ view isPopUpView ifTrue:[self halt].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13913
    Object errorSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13914
    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13915
	view beInvisible
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13916
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13918
    "Created: / 7.1.1998 / 22:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13919
    "Modified: / 4.12.1998 / 17:53:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13920
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13921
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13922
_WComponentPeer_nativeHandleEvent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13923
    "this is invoked by java, to let a widget handle any event which
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13924
     was not consumed (eaten) by java.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13925
     If the view in question is some ST-widget, forward it.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13926
     Ignore for JavaViews."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13927
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13928
    |view jEv stEv|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13929
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13930
^self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13931
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13932
    view notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13933
	(view isKindOf:JavaView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13934
	    jEv := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13935
	    stEv := jEv instVarNamed:'data'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13936
	    (stEv notNil and:[stEv ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13937
		EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13938
		    ('JAVA: WComponent - handleEvent: ' , stEv type , ' for ' , view printString) infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13939
		].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13940
		stEv sendEventWithFocusOn:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13941
		^ self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13942
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13943
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13944
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13945
    EventTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13946
	('JAVA: WComponent - handleEvent ignored') infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13947
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13948
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13949
    "Created: / 19.10.1998 / 21:26:16 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13950
    "Modified: / 19.10.1998 / 23:26:37 / cg"
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
_WComponentPeer_requestFocus:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13954
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13956
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13957
"/ 'getFocus - ' print. view displayString printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13959
"/    view getKeyboardFocus
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13960
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13961
    "Created: / 7.1.1998 / 22:30:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13962
    "Modified: / 4.12.1998 / 19:42:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13963
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13965
_WComponentPeer_reshape:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13966
    self commonReshapeComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13968
    "Modified: / 18.3.1997 / 19:30:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13969
    "Created: / 4.1.1998 / 18:01:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13970
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 13971
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13972
_WComponentPeer_setBackground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13973
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13974
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13975
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13976
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13977
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13978
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13979
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13980
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13981
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13982
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13983
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13984
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13985
"/    (view superView isMemberOf:JavaEmbeddedFrameView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13986
"/        view viewBackground:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13987
"/        view backgroundPaint:(view superView viewBackground).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13988
"/    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13989
"/        (view isMemberOf:JavaView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13990
"/            view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13991
"/            view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13992
"/        ]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13993
"/    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13994
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13995
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13996
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13997
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13998
    view viewBackground:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 13999
    view backgroundPaint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14000
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14001
    "Created: / 16.10.1998 / 02:16:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14002
    "Modified: / 16.10.1998 / 02:26:29 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14003
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14004
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14005
_WComponentPeer_setCursor:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14006
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14007
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14008
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14009
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14010
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14011
    "Created: / 5.1.1998 / 01:52:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14012
    "Modified: / 25.1.1998 / 01:21:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14013
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14014
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14015
_WComponentPeer_setFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14016
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14017
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14018
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14019
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14020
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14021
    "Created: / 5.1.1998 / 00:55:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14022
    "Modified: / 25.1.1998 / 01:22:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14023
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14024
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14025
_WComponentPeer_setForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14026
    |jClr rgb clr view|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14027
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14028
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14029
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14030
    jClr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14031
    rgb := jClr instVarNamed:'value'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14032
"/ self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14033
    clr := Color rgbValue:rgb.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14034
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14035
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14036
    clr := clr on:(view device).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14037
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14038
    (view isKindOf:ScrollableView) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14039
	view := view scrolledView
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14040
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14041
    view paint:clr.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14042
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14043
    "Created: / 16.10.1998 / 02:18:58 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14044
    "Modified: / 16.10.1998 / 02:26:37 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14045
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14046
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14047
_WComponentPeer_setZOrderPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14048
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14049
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14050
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14051
"/    self unimplementedNativeMethod.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14052
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14053
"/ self internalError:'breakPoint'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14055
    "Created: / 4.1.1998 / 17:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14056
    "Modified: / 25.1.1998 / 01:22:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14057
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14059
_WComponentPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14060
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14062
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14064
    "/ frame views are under my browsers own control
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14065
    (view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14066
	view beVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14067
	view realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14068
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14069
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14070
"/    view windowGroup notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14071
"/        windowServer addGroup:(view windowGroup)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14072
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14074
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14076
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14077
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14078
    "Created: / 5.1.1998 / 01:26:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14079
    "Modified: / 4.12.1998 / 17:43:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14080
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14081
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14082
_WComponentPeer_start:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14083
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14084
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14085
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14086
    "Created: / 5.1.1998 / 00:58:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14087
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14088
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14089
_WContainerPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14090
    "/ new with ns4.0 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14091
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14092
    "Created: / 16.10.1998 / 02:12:59 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14093
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14094
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14095
_WDefaultFontCharset_canConvert:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14096
    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14098
    "Modified: / 21.8.1997 / 15:56:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14099
    "Created: / 5.1.1998 / 01:55:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14100
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14101
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14102
_WDialogPeer__hide:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14103
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14105
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14107
    dialog hide.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14108
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14109
    "Created: / 7.1.1998 / 22:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14110
    "Modified: / 8.1.1998 / 17:34:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14111
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14112
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14113
_WDialogPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14114
    |dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14115
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14116
    dialog := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14117
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14118
"/ show does not work (yet); must setup windowgroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14119
"/ for it to get events ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14120
"/    dialog realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14121
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14122
dialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14123
"/dialog fixSize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14124
"/dialog makeFullyVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14125
"/dialog openModal:[true] inGroup:JavaWindowGroup
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14127
    "Created: / 7.1.1998 / 21:52:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14128
    "Modified: / 11.12.1998 / 14:43:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14129
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14131
_WDialogPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14132
    |jDialogPeer dialog|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14133
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14134
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14135
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14136
    dialog := ModalBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14137
    jDialogPeer instVarNamed:'pData' put:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14138
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14139
    self createdWindowsView:dialog for:jDialogPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14140
    dialog windowGroup:JavaWindowGroup.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14141
    JavaWindowGroup addTopView:dialog.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14142
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14143
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14144
	'WDialogPeer_create: ' print. dialog printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14145
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14146
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14147
    "Created: / 7.1.1998 / 21:51:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14148
    "Modified: / 15.1.1998 / 16:12:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14149
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14150
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14151
_WDrawingSurfaceInfo_getDepth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14152
    "/ int getDepth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14153
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14154
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14155
    "Created: / 12.11.1998 / 19:21:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14156
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14158
_WDrawingSurfaceInfo_getHBitmap:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14159
    "/ int getHBitmap ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14160
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14162
    "Created: / 12.11.1998 / 19:20:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14163
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14164
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14165
_WDrawingSurfaceInfo_getHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14166
    "/ int getHDC ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14167
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14169
    "Created: / 12.11.1998 / 19:20:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14170
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14172
_WDrawingSurfaceInfo_getHPalette:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14173
    "/ int getHPalette ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14174
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14176
    "Created: / 12.11.1998 / 19:21:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14177
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14179
_WDrawingSurfaceInfo_getHWnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14180
    "/ int getHWnd ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14181
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14183
    "Created: / 12.11.1998 / 19:20:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14184
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14186
_WDrawingSurfaceInfo_getPBits:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14187
    "/ int getPBits ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14188
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14189
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14190
    "Created: / 12.11.1998 / 19:20:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14191
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14193
_WDrawingSurfaceInfo_lock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14194
    "/ int lock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14195
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14196
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14197
    "Created: / 12.11.1998 / 19:20:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14198
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14200
_WDrawingSurfaceInfo_unlock:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14201
    "/ void unlock ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14202
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14203
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14204
    "Created: / 12.11.1998 / 19:20:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14205
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14206
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14207
_WEmbeddedFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14208
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14209
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14210
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14211
    "Created: / 12.11.1998 / 19:16:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14212
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14213
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14214
_WFileDialogPeer_show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14215
    |jDialogPeer jDialog dialogView stDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14216
     title dir pattern f|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14217
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14218
    jDialogPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14219
    jDialog := jDialogPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14220
    dialogView := jDialogPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14222
    stDialog := FileSelectionBox new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14224
    dir := jDialog instVarNamed:'dir'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14225
    dir notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14226
	stDialog directory:(Java as_ST_String:dir).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14227
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14228
    pattern := jDialog instVarNamed:'file'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14229
    pattern notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14230
	stDialog pattern:(Java as_ST_String:pattern).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14231
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14232
    title := jDialog instVarNamed:'title'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14233
    title notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14234
	stDialog title:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14235
	stDialog label:(Java as_ST_String:title).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14236
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14237
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14238
    stDialog show.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14239
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14240
    stDialog accepted ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14241
	f := stDialog pathName.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14242
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14243
	"/ cannot use the one below - it has a builtIn fileSeparator if '\' (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14244
	"/ jDialogPeer perform:#'handleSelected(Ljava/lang/String;)V' with:(Java as_String:f).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14246
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14247
	    perform:#'setFile(Ljava/lang/String;)V' 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14248
	    with:(Java as_String:(f asFilename baseName)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14249
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14250
	    perform:#'setDirectory(Ljava/lang/String;)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14251
	    with:(Java as_String:(f asFilename directoryName , Filename separator asString)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14252
	jDialog 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14253
	    perform:#'setVisible(Z)V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14254
	    with:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14255
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14256
	jDialogPeer 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14257
	    perform:#'handleCancel()V'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14258
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14259
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14261
    "Created: / 7.1.1998 / 22:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14262
    "Modified: / 15.1.1998 / 13:04:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14265
_WFontMetrics_bytesWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14266
    "/ int bytesWidth (byte[] int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14267
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14269
    "Created: / 12.11.1998 / 19:11:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14270
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14271
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14272
_WFontMetrics_getMFCharSegmentWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14273
    "get multi-font string-segment width.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14274
     Not yet supported - use standard strings width"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14275
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14276
    |jMetrics jFont jFontDescr stFont w
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14277
     bool1 cp offs lenght bp int1|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14279
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14280
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14281
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14282
    bool1 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14283
    cp := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14284
    offs := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14285
    lenght := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14286
    bp := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14287
    int1 := nativeContext argAt:8.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14289
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14290
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14291
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14292
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14294
    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14295
	stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14296
	jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14297
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14298
    w := stFont widthOf:cp from:offs+1 to:offs+lenght.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14299
    ^ w.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14300
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14301
    "Created: / 5.1.1998 / 01:57:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14302
    "Modified: / 13.1.1998 / 23:44:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14303
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14305
_WFontMetrics_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14306
    |jMetrics jFont stFont widths family name style size|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14308
    jMetrics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14309
    jFont := jMetrics instVarNamed:'font'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14311
    family := jFont instVarNamed:'family'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14312
    family := Java as_ST_String:family.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14313
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14314
    name := jFont instVarNamed:'name'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14315
    name := Java as_ST_String:name.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14317
    style := jFont instVarNamed:'style'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14318
    size := jFont instVarNamed:'size'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14320
    stFont := Font family:family size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14321
    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14322
        stFont := Font family:'helvetica' size:size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14323
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14324
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14325
self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14326
"/    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14327
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14328
"/        self halt
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
    stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14332
    jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14333
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14334
    jMetrics instVarNamed:'ascent'     put:stFont ascent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14335
    jMetrics instVarNamed:'descent'    put:stFont descent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14336
    jMetrics instVarNamed:'leading'    put:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14337
    jMetrics instVarNamed:'height'     put:stFont height.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14338
    jMetrics instVarNamed:'maxAscent'  put:stFont maxAscent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14339
    jMetrics instVarNamed:'maxDescent' put:stFont maxDescent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14340
    jMetrics instVarNamed:'maxHeight'  put:stFont maxHeight.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14341
    jMetrics instVarNamed:'maxAdvance' put:stFont maxWidth.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14343
    widths := Array new:256.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14344
    0 to:255 do:[:i |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14345
        widths at:(i+1) put:(stFont widthOf:(Character value:i))
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14346
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14347
    jMetrics instVarNamed:'widths' put:widths.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14348
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14349
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14350
    "Modified: / 8.8.1997 / 12:06:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14351
    "Created: / 5.1.1998 / 01:54:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14352
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14354
_WFontMetrics_needsConversion:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14355
    |jFont jFontDescr stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14356
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14357
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14358
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14359
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14360
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14361
"/    stFont isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14362
"/        self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14363
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14364
"/    stFont device isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14365
"/        stFont := stFont on:Display.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14366
"/        jFont instVarNamed:'pData' put:stFont.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14367
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14368
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14369
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14370
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14371
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14372
    "Modified: / 17.8.1997 / 17:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14373
    "Created: / 5.1.1998 / 01:56:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14374
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14375
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14376
_WFramePeer__setIconImage:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14377
    |frame imgRep image|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14379
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14380
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14381
    imgRep notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14382
	image := imgRep instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14383
	(image notNil and:[image ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14384
	    frame icon:image.
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
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14388
    "Created: / 27.4.1998 / 17:15:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14389
    "Modified: / 27.4.1998 / 17:18:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14390
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14392
_WFramePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14393
    |jFramePeer jFrame top frame pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14394
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14395
    jFramePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14397
    "/ for now: a kludge to create an embedded frame for
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14398
    "/ mozillaFrames
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14399
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14400
    jFrame := jFramePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14401
    (jFrame notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14402
    and:[(pDataIdx := jFrame class instVarOffsetOf:'pData') notNil])
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14403
    ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14404
	((frame := jFrame instVarAt:pDataIdx) notNil 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14405
	and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14406
	    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14407
		'JAVA: targetFrame view already created: ' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14408
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14409
	    "/ sigh; pData was renamed to pNativeWidget in jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14410
	    pDataIdx := jFramePeer class instVarOffsetOf:'pNativeWidget'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14411
	    pDataIdx isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14412
		"/ ok, we are < 1.2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14413
		pDataIdx := jFramePeer class instVarOffsetOf:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14414
	    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14415
	    jFramePeer instVarAt:pDataIdx put:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14416
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14417
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14418
	frame := jFramePeer instVarNamed:'pData'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14419
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14421
    (frame notNil and:[frame ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14422
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14423
	    'JAVA: frame view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14424
	    jFramePeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14425
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14426
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14427
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14428
"/        frame := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14429
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14430
"/        JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14431
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14432
	frame := JavaTopView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14433
	frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14434
	frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14435
	self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14436
	JavaWindowGroup addTopView:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14437
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14438
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14439
"/        frame := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14440
"/        frame delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14441
"/        frame javaPeer:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14442
"/        self createdWindowsView:frame for:jFramePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14443
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14444
        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14445
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14446
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14447
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14448
	'JAVA: WFramePeer_create: ' print. jFramePeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14449
	' frame: ' print. frame printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14450
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14451
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14452
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14453
    "Modified: / 3.12.1998 / 00:10:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14454
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14456
_WFramePeer_setMenuBar0:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14457
    |frame jMenuBarPeer menuPanel|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14458
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14459
    frame := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14460
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14461
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14462
    jMenuBarPeer isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14463
	"/ mhmh - JAVA wants to remove the frames menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14464
	"/ but I have no handle on it (for destroy).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14465
	"/ search it in subViews of the frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14466
	frame subViews copy do:[:v |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14467
	    (v isKindOf:MenuPanel) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14468
		v destroy
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14469
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14470
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14471
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14472
	menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14473
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14474
	menuPanel origin:0.0@0.0 corner:1.0@(menuPanel preferredExtent y).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14475
	frame addSubView:menuPanel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14476
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14477
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14478
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14479
    "Created: / 7.1.1998 / 21:41:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14480
    "Modified: / 8.1.1998 / 17:35:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14481
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14482
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14483
_WFramePeer_setResizable:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14484
    |view onOff|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14485
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14486
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14487
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14488
    onOff := (nativeContext argAt:1) == 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14489
    view isTopView ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14490
	onOff ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14491
	    view minExtent:10@10.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14492
	    view maxExtent:(Screen current extent).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14493
	] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14494
	    view minExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14495
	    view maxExtent:view extent.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14496
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14497
    ] ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14498
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14499
	    self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14500
	]
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14501
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14502
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14503
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14504
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14505
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14506
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14507
    "Modified: / 16.1.1998 / 18:08:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14508
    "Created: / 16.10.1998 / 02:21:34 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14509
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14510
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14511
_WFramePeer_setTitle:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14512
    |view jString string|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14513
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14514
    view := self viewForWPeer:nativeContext.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14515
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14516
    jString := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14517
    string := Java as_ST_String:jString.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14518
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14519
"/ 'JAVA: WFramePeer_pSetTitle: ' print. string print. ' ' print. view printNL.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14520
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14521
    view label:string.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14522
    ^ nil
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14523
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14524
    "Modified: / 8.1.1998 / 17:37:41 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14525
    "Created: / 27.1.1998 / 21:42:57 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14526
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 14527
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14528
_WGraphics__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14529
    "/ void _dispose()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14530
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14531
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14532
    "Created: / 12.11.1998 / 19:17:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14533
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14534
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14535
_WGraphics_changeClip:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14536
    |gc x y w h r bool|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14537
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14538
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14539
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14540
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14541
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14542
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14543
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14544
    bool := (nativeContext argAt:5) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14545
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14546
    r := Rectangle left:x top:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14547
"/ 'WGraphics_changeClip: ' infoPrint. r infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14548
    gc clippingRectangle:r.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14549
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14550
    "Created: / 6.1.1998 / 20:57:21 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14551
    "Modified: / 20.10.1998 / 19:40:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14552
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14553
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14554
_WGraphics_clearRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14555
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14556
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14557
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14558
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14559
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14560
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14561
	'JAVA: drawing on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14562
	^ self
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
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14566
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14567
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14568
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14569
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14570
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14571
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14572
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14573
    gc clearRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14575
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14576
    "Modified: / 8.1.1998 / 00:21:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14577
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14578
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14579
_WGraphics_close:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14580
    "/ void close (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14581
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14582
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14583
    "Created: / 12.11.1998 / 19:19:40 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14584
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14585
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14586
_WGraphics_copyArea:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14587
    |gc srcX srcY w h deltaX deltaY|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14588
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14589
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14590
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14591
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14592
    gc realized ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14593
	'JAVA: copyArea on unrealized gc - ignored' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14594
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14595
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14596
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14597
    srcX := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14598
    srcY := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14599
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14600
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14601
    deltaX := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14602
    deltaY := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14603
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14604
    gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14605
	copyFrom:gc
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14606
	x:srcX y:srcY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14607
	toX:srcX+deltaX y:srcY+deltaY 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14608
	width:w height:h
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14610
    "Created: / 8.1.1998 / 00:16:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14611
    "Modified: / 9.4.1998 / 22:01:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14612
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14613
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14614
_WGraphics_createFromComponent:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14615
    |jGraphics jWin view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14616
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14617
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14618
    jWin := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14619
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14620
    view := KnownWindows at:jWin ifAbsent:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14621
    view isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14622
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14623
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14624
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14625
    view clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14626
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14627
"/    "/ just a consistency check ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14628
"/    (jWin instVarNamed:'xid') ~~ view ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14629
"/        self halt:'consistency check'
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14630
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14632
    jGraphics instVarNamed:'pData' put:view.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14634
    "Created: / 6.1.1998 / 20:55:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14635
    "Modified: / 20.10.1998 / 19:38:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14636
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14638
_WGraphics_createFromGraphics:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14639
    |jGraphics graphics gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14640
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14641
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14642
    graphics := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14643
    gc := graphics instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14644
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14645
    jGraphics instVarNamed:'pData' put:gc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14646
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14647
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14648
    "Created: / 8.1.1998 / 00:47:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14649
    "Modified: / 20.10.1998 / 19:37:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14650
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14651
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14652
_WGraphics_createFromHDC:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14653
    "/ void createFromHDC (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14654
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14655
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14656
    "Created: / 12.11.1998 / 19:17:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14657
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14658
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14659
_WGraphics_createFromPrintJob:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14660
    "/ void createFromPrintJob (sun.awt.windows.WPrintJob)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14661
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14662
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14663
    "Created: / 12.11.1998 / 19:17:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14664
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14666
_WGraphics_dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14667
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14668
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14669
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14670
    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14671
    gc clippingRectangle:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14672
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14673
    "Created: / 6.1.1998 / 20:58:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14674
    "Modified: / 20.10.1998 / 19:35:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14675
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14677
_WGraphics_drawArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14678
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14680
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14681
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14682
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14683
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14684
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14685
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14686
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14687
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14688
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14689
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14690
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14691
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14692
	'drawArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14693
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14694
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14695
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14696
    gc 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14697
	displayArcX:x y:y 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14698
	width:w height:h 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14699
	from:startAngle angle:(endAngle - startAngle).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14701
    "Created: / 6.1.1998 / 21:00:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14702
    "Modified: / 28.1.1999 / 17:38:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14703
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14704
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14705
_WGraphics_drawBytes:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14706
    "/ void drawBytes (byte[] int int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14707
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14709
    "Created: / 12.11.1998 / 19:18:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14710
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14712
_WGraphics_drawLine:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14713
    |gc x y x2 y2|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14714
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14715
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14716
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14717
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14719
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14720
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14721
    x2 := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14722
    y2 := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14723
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14724
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14725
	'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
 14726
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14727
    gc displayLineFromX:x y:y toX:x2 y:y2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14728
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14729
    "Created: / 6.1.1998 / 20:59:27 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14730
    "Modified: / 8.1.1998 / 00:34:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14731
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14733
_WGraphics_drawMFCharsConvertedSegment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14734
    "/ int drawMFCharsConvertedSegment (java.awt.Font sun.awt.FontDescriptor byte[] int int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14735
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14737
    "Created: / 12.11.1998 / 19:18:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14738
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14740
_WGraphics_drawMFCharsSegment:nativeContext       
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14741
    |jFont jFontDescr s gc x y offs len|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14742
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14743
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14744
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14745
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14746
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14747
    jFontDescr := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14748
    s := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14749
    offs := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14750
    len := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14751
    x := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14752
    y := nativeContext argAt:7.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14753
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14754
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14755
	'drawMFCharsSegment x/y= ' print. x print. '@' print. y print. ' s= ' print. s printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14756
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14757
    gc displayString:s from:offs+1 to:offs+len x:x y:y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14758
    ^ (gc font onDevice:(gc graphicsDevice)) widthOf:s.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14760
    "Created: / 6.1.1998 / 21:01:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14761
    "Modified: / 25.1.1998 / 20:45:55 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14762
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14763
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14764
_WGraphics_drawOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14765
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14766
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14767
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14768
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14769
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14770
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14771
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14772
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14773
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14774
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14775
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14776
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14777
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14778
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14779
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14780
    gc displayArcX:x y:y width:w height:h from:0 angle:360.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14781
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14782
    "Created: / 8.1.1998 / 00:44:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14783
    "Modified: / 9.4.1998 / 22:10:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14784
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14786
_WGraphics_drawPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14787
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14789
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14790
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14791
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14792
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14793
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14794
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14795
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14796
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14797
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14798
	'drawPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14799
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14801
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14802
    gc displayPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14803
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14804
    "Created: / 8.1.1998 / 00:57:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14805
    "Modified: / 8.1.1998 / 00:57:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14806
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14807
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14808
_WGraphics_drawPolyline:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14809
    "/ void drawPolyline (int[] int[] int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14810
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14812
    "Created: / 12.11.1998 / 19:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14813
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14814
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14815
_WGraphics_drawRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14816
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14817
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14818
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14819
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14820
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14821
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14822
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14823
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14824
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14825
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14826
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14827
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14828
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14829
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14830
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14831
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14832
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14833
    "Created: / 8.1.1998 / 00:59:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14834
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14836
_WGraphics_drawRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14837
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14838
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14839
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14840
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14841
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14842
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14843
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14844
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14845
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14846
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14847
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14848
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14849
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14850
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14851
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14852
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14853
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14854
    "Created: / 8.1.1998 / 00:59:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14855
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14857
_WGraphics_drawSFChars:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14858
    "/ void drawSFChars (char[]s, int pos1, int len, int x, int y)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14859
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14860
    |gc str x y idx1 nChars|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14861
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14862
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14863
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14864
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14865
    str := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14866
    idx1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14867
    nChars := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14868
    x := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14869
    y := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14870
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14871
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14872
	'drawSFChars x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14873
	       ' s= ' print. str printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14874
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14875
    gc displayString:str from:idx1+1 to:idx1+nChars x:x y:y
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14876
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14877
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14878
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14879
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14880
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14882
_WGraphics_fillArc:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14883
    |gc x y w h startAngle endAngle|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14884
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14885
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14886
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14887
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14889
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14890
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14891
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14892
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14893
    startAngle := nativeContext argAt:5.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14894
    endAngle := nativeContext argAt:6.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14896
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14897
	'fillArc x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14898
	       ' w/h= ' print. w print. '@' print. h print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14899
	       ' startAngle= ' print. startAngle print. ' endAngle= ' print. endAngle printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14900
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14901
    gc fillArcX:x y:y width:w height:h from:startAngle angle:(endAngle - startAngle)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14902
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14903
    "Created: / 6.1.1998 / 21:11:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14904
    "Modified: / 8.1.1998 / 00:33:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14905
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14906
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14907
_WGraphics_fillOval:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14908
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14909
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14910
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14911
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14912
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14913
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14914
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14915
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14916
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14917
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14918
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14919
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14920
	'drawOval x/y= ' print. x print. '@' print. y print. 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14921
		' w/h= ' print. w print. '@' print. h printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14922
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14923
    gc fillArcX:x y:y width:w height:h from:0 angle:360
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14924
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14925
    "Created: / 8.1.1998 / 00:46:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14926
    "Modified: / 8.1.1998 / 00:46:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14927
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14928
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14929
_WGraphics_fillPolygon:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14930
    |gc xVector yVector count points|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14932
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14933
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14934
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14935
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14936
    xVector := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14937
    yVector := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14938
    count := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14939
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14940
    DrawOPTrace ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14941
	'fillPolgon' printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14942
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14943
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14944
    points := (1 to:count) collect:[:i | (xVector at:i) @ (yVector at:i)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14945
    gc fillPolygon:points
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14946
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14947
    "Created: / 8.1.1998 / 00:58:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14948
    "Modified: / 25.1.1998 / 11:03:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14949
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14950
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14951
_WGraphics_fillRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14952
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14953
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14954
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14955
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14956
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14957
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14958
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14959
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14960
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14961
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14963
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14964
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14965
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14966
    gc fillRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14968
    "Created: / 15.8.1997 / 15:43:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14969
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14970
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14971
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14972
_WGraphics_fillRoundRect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14973
    |gc x y w h|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14975
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14976
"/    gc isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14977
    gc realized ifFalse:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14979
    x := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14980
    y := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14981
    w := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14982
    h := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14983
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14984
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14985
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14986
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14987
    gc displayRectangleX:x y:y width:w height:h.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14989
    "Modified: / 8.1.1998 / 00:34:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14990
    "Created: / 8.1.1998 / 00:59:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14991
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14992
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14993
_WGraphics_getClipBounds: nativeContext 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14994
    | gc  rect  r  x  y  w  h |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14995
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14996
    gc := self gcForWGraphics: nativeContext.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14997
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 14998
"/    gc isNil ifTrue:[^ nil].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 14999
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15000
    rect := (self classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15001
    (gc isMemberOf: JavaView) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15002
        "/ r := gc clippingRectangleOrNil. 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15003
        r := gc getNextUpdateRectangle.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15004
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15005
    r isNil ifTrue: [ r := gc clippingRectangleOrNil. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15006
    r isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15007
        x := y := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15008
        w := (gc width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15009
        h := (gc height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15010
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15011
        x := (r left).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15012
        y := (r top).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15013
        w := (r width).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15014
        h := (r height).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15015
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15016
    rect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15017
    rect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15018
    rect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15019
    rect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15020
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15021
"/ 'WGraphics__getClipBounds ' infoPrint. (x@y extent:w@h) infoPrintCR.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 15022
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15023
    ^ rect
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15025
    "Created: / 6.1.1998 / 20:58:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15026
    "Modified: / 23.12.1998 / 20:14:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15027
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15028
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15029
_WGraphics_imageCreate:nativeContext        
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15030
    |jGraphics imgRep|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15031
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15032
    jGraphics := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15033
    imgRep := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15034
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15035
    jGraphics instVarNamed:'pData' put:(imgRep instVarNamed:'pData').
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15036
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15038
    "Created: / 11.1.1998 / 16:34:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15039
    "Modified: / 17.1.1998 / 12:37:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15040
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15041
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15042
_WGraphics_pSetFont:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15043
    |gc jFont stFont|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15044
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15045
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15046
    jFont := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15047
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15048
    stFont := jFont instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15049
    (stFont isNil or:[stFont == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15050
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15051
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15052
	gc font:stFont
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
    "Created: / 6.1.1998 / 20:56:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15056
    "Modified: / 15.1.1998 / 12:31:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15057
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15058
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15059
_WGraphics_pSetForeground:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15060
    |gc rgb clr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15062
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15063
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15064
    rgb := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15065
    rgb isInteger ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15066
        "/ its a java.awt.Color
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15067
        rgb := rgb instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15068
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15069
    clr := Color rgbValue:rgb.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15070
    gc paint:(clr nearestOn:gc device).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15071
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15072
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15073
"/ self internalError:'breakPoint'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15074
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15075
    "Created: / 6.1.1998 / 20:56:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15076
    "Modified: / 23.12.1998 / 20:10:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15077
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15078
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15079
_WGraphics_print:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15080
    "/ void print (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15081
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15083
    "Created: / 12.11.1998 / 19:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15084
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15085
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15086
_WGraphics_removeClip:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15087
    "/ void removeClip ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15088
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15090
    "Created: / 12.11.1998 / 19:18:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15091
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15093
_WGraphics_setPaintMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15094
    |gc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15095
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15096
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15097
    gc function:#copy.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15098
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15099
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15100
	'copyMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15101
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15102
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15103
    "Created: / 8.1.1998 / 00:33:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15104
    "Modified: / 28.1.1998 / 23:25:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15105
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15106
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15107
_WGraphics_setXORMode:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15108
    |gc jColor rgb invColor device|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15109
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15110
    gc := self gcForWGraphics:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15111
    jColor := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15112
    device := gc graphicsDevice.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15113
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15114
"/    "/ on trueColor systems, use the provided
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15115
"/    "/ rgb value for inverting.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15116
"/    "/ on palette systems, use white ^ black
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15117
"/
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15118
"/    device visualType == #TrueColor ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15119
"/        rgb := jColor instVarNamed:'value'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15120
"/        rgb := rgb bitAnd:16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15121
"/        rgb == 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15122
"/            rgb := 16rFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15123
"/        ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15124
"/        invColor := rgb
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15125
"/    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15126
"/        invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15127
"/    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15128
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15129
    invColor := device blackpixel bitXor:device whitepixel.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15130
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15131
"/    gc foreground:(Color colorId:invColor)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15132
"/       background:device blackColor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15133
    device 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15134
	setForeground:invColor background:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15135
	in:gc gcId.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15136
    gc function:#xor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15137
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15138
    true "DrawOPTrace" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15139
	'xorMode' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15140
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15142
    "Created: / 8.1.1998 / 00:36:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15143
    "Modified: / 28.1.1998 / 23:45:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15144
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15145
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15146
_WLabelPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15147
    |jLabelPeer jLabel jFrame frame label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15148
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15149
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15150
    jLabelPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15151
    jLabel := jLabelPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15153
    lbl := jLabel instVarNamed:'text'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15154
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15155
	lbl := Java as_ST_String:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15156
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15157
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15158
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15159
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15160
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15161
    label := Label in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15162
    label sizeFixed:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15163
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15164
	label label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15165
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15166
    self createdWindowsView:label for:jLabelPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15167
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15168
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15169
	'WLabelPeer_create: ' print. frame print. ' -> ' print. label printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15170
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15172
    "Created: / 7.1.1998 / 21:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15173
    "Modified: / 13.1.1998 / 22:10:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15174
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15176
_WLabelPeer_setAlignment:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15177
    |label alignNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15178
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15179
    alignNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15180
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15181
    label notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15182
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15184
    "Created: / 7.1.1998 / 21:43:12 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15185
    "Modified: / 8.1.1998 / 17:35:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15186
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15187
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15188
_WLabelPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15189
    |label jString str|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15191
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15192
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15193
    label := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15194
    jString notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15195
	str := Java as_ST_String:jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15196
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15197
    label label:str
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15198
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15199
    "Created: / 7.1.1998 / 21:43:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15200
    "Modified: / 3.12.1998 / 14:59:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15201
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15203
_WListPeer__addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15204
    |jString index1 length selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15205
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15206
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15207
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15208
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15209
    index1 := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15210
    length := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15212
    (m := selListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15213
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15214
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15215
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15217
    "Created: / 26.10.1998 / 20:11:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15218
    "Modified: / 14.11.1998 / 01:21:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15219
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15220
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15221
_WListPeer_addItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15222
    |jString index selListView m|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15224
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15226
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15227
    index := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15228
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15229
    m := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15230
    m isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15231
	Transcript showCR:'JAVA: access to listModel of closed view'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15232
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15233
	m list addLast:(Java as_ST_String:jString).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15234
	m changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15235
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15236
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15237
    "Created: / 24.1.1998 / 21:10:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15238
    "Modified: / 2.11.1998 / 17:12:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15239
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15241
_WListPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15242
    |jListPeer jFrame frame selectionInListView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15244
    jListPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15245
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15246
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15247
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15248
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15249
    selectionInListView := ScrollableView for:SelectionInListView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15250
    selectionInListView action:[:index | jListPeer perform:#'handleListChanged(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15251
    selectionInListView doubleClickAction:[:index | jListPeer perform:#'handleAction(I)V' with:(index - 1)].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15252
    selectionInListView model:(SelectionInList new list:(List new)).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15253
    selectionInListView useIndex:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15254
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15255
    self createdWindowsView:selectionInListView for:jListPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15257
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15258
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. selectionInListView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15259
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15260
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15261
    "Created: / 24.1.1998 / 19:58:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15262
    "Modified: / 9.4.1998 / 22:19:07 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15263
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15264
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15265
_WListPeer_delItems:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15266
    |jString index1 index2 selListView model list|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15267
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15268
    selListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15269
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15270
    index1 := (nativeContext argAt:1) + 1. "/ java indices are 0-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15271
    index2 := (nativeContext argAt:2) + 1. "/ st indices are 1-based.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15273
    model := selListView model.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15274
    model isNil ifTrue:[^ self].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15275
    list := model list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15276
    list size >= index1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15277
	list removeFromIndex:index1 toIndex:(index2 min:list size).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15278
	model changed:#list.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15279
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15280
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15281
    "Created: / 9.4.1998 / 22:19:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15282
    "Modified: / 30.12.1998 / 20:00:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15283
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15285
_WListPeer_deselect:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15286
    "/ void deselect (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15287
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15288
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15289
    "Created: / 12.11.1998 / 19:15:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15290
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15291
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15292
_WListPeer_getMaxWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15293
    "/ int getMaxWidth ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15294
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15295
    ^ 1000 "/ a dummy value
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15296
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15297
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15298
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15299
    "Created: / 14.11.1998 / 10:44:29 / cg"
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
_WListPeer_isSelected:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15303
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15305
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15306
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15307
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15308
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15309
	(model selectionIndex == (index + 1))  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15310
	ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15311
	    ^ 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15312
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15313
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15314
    ^ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15315
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15316
    "Created: / 24.1.1998 / 22:42:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15317
    "Modified: / 25.1.1998 / 01:35:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15318
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15319
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15320
_WListPeer_makeVisible:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15321
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15322
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15323
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15324
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15325
    lineNr := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15326
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15327
    selectionInListView makeLineVisible:(lineNr + 1)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15328
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15329
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15330
    "Created: / 20.10.1998 / 14:14:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15331
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15333
_WListPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15334
    |selectionInListView index model|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15335
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15336
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15337
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15338
    index := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15339
    (model := selectionInListView model) notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15340
	model selectionIndex:(index + 1).  "/ JAVA indexing starts at 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15341
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15343
    "Created: / 24.1.1998 / 22:32:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15344
    "Modified: / 25.1.1998 / 01:28:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15345
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15346
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15347
_WListPeer_setMultipleSelections:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15348
    |selectionInListView onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15349
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15350
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15352
    onOff := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15353
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15354
    selectionInListView multipleSelectOk:onOff.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15355
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15356
    "Modified: / 24.1.1998 / 20:01:06 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15357
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15358
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15359
_WListPeer_updateMaxItemWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15360
    |selectionInListView lineNr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15361
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15362
    selectionInListView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15363
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15364
    "Created: / 26.10.1998 / 20:09:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15365
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15366
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15367
_WMenuBarPeer_addMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15368
    "/ void addMenu (java.awt.Menu)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15369
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15371
    "Created: / 12.11.1998 / 19:14:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15372
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15373
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15374
_WMenuBarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15375
    |jMenuBarPeer jMenuBar jFrame frame menuBar|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15376
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15377
    jMenuBarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15378
    jMenuBar := jMenuBarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15379
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15380
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15381
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15382
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15383
    menuBar := MenuPanel in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15384
    menuBar verticalLayout:false.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15385
    menuBar realize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15386
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15387
    self createdWindowsView:menuBar for:jMenuBarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15388
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15389
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15390
	'WMenuBarPeer_create: ' print. frame print. ' -> ' print. menuBar printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15391
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15392
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15393
    "Created: / 7.1.1998 / 21:38:31 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15394
    "Modified: / 25.1.1998 / 13:19:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15395
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15396
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15397
_WMenuBarPeer_delMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15398
    "/ void delMenu (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15399
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15401
    "Created: / 12.11.1998 / 19:14:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15402
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15403
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15404
_WMenuItemPeer__dispose:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15405
    |jMenuItemPeer item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15406
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15407
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15408
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15409
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15410
"/ what should be done here ?
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15411
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15412
    "Created: / 29.3.1998 / 17:16:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15413
    "Modified: / 29.3.1998 / 17:16:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15414
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15415
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15416
_WMenuItemPeer__setLabel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15417
    "/ void _setLabel (java.lang.String)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15418
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15419
    |jMenuItemPeer item label|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15420
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15421
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15422
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15423
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15424
	'JAVA [warning]: NULL menu item in setLabel' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15425
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15426
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15427
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15428
    label := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15429
    label isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15430
	label := ''
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15431
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15432
	label := Java as_ST_String:label
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15433
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15434
    item label:label.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15436
    "Modified: / 11.12.1998 / 16:40:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15437
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15438
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15439
_WMenuItemPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15440
    |jMenuItemPeer jMenuItem jMenuPeer menu item lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15441
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15442
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15443
    jMenuItem := jMenuItemPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15444
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15445
    jMenuPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15446
    menu := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15447
    (menu isNil or:[menu == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15448
	'JAVA: no menu to create item in' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15449
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15450
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15451
    item := menu createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15452
    item value:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15453
		jMenuItemPeer perform:#'handleAction(I)V' with:0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15454
	       ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15455
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15456
    lbl := jMenuItem instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15457
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15458
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15459
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15460
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15461
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15462
    jMenuItemPeer instVarNamed:'pData' put:item.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15463
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15464
    WindowOPTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15465
	'WMenuItem_create: ' print. menu print. ' -> ' print. item printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15466
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15467
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15468
    "Created: / 7.1.1998 / 21:40:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15469
    "Modified: / 3.12.1998 / 20:43:20 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15470
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15471
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15472
_WMenuItemPeer_enable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15473
    |jMenuItemPeer item state|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15474
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15475
    jMenuItemPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15476
    item := jMenuItemPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15477
    (item isNil or:[item == 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15478
	'JAVA [warning]: NULL menu item in enable' infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15479
	^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15480
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15481
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15482
    state := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15483
    item enabled:(state ~~ 0)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15484
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15485
    "Created: / 7.1.1998 / 22:41:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15486
    "Modified: / 11.12.1998 / 16:40:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15487
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15488
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15489
_WMenuPeer_addSeparator:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15490
    "/ void addSeparator ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15491
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15493
    "Created: / 12.11.1998 / 19:13:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15494
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15495
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15496
_WMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15497
    |jMenuPeer jMenu jMenuBarPeer menuPanel menu
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15498
     lbl item|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15500
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15501
    jMenu := jMenuPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15502
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15503
    jMenuBarPeer := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15504
    menuPanel := jMenuBarPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15505
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15506
    item := menuPanel createAtIndex:nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15507
    lbl := jMenu instVarNamed:'label'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15508
    lbl notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15509
	lbl := Java as_ST_String:lbl.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15510
	item label:lbl
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15511
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15513
    menu := MenuPanel new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15514
    item submenu:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15515
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15516
    jMenuPeer instVarNamed:'pData' put:menu.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15517
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15518
'createMenuPeer: ' print. menuPanel print. ' -> ' print. menu printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15519
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15520
    "Created: / 7.1.1998 / 21:39:50 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15521
    "Modified: / 13.1.1998 / 22:11:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15522
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15523
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15524
_WMenuPeer_createSubMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15525
    "/ void createSubMenu (sun.awt.windows.WMenuPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15526
"/    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15527
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15528
    "Created: / 12.11.1998 / 19:13:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15529
    "Modified: / 3.12.1998 / 21:41:07 / 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
_WMenuPeer_delItem:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15533
    "/ void delItem (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15534
    |jMenuPeer jMenu menuPanel itemIndex|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15535
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15536
    jMenuPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15537
    menuPanel := jMenuPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15538
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15539
    itemIndex := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15540
    menuPanel remove:itemIndex.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15541
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:13:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15545
    "Modified: / 10.12.1998 / 21:12:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15546
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15547
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15548
_WPanelPeer_calculateInsets:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15549
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15550
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15551
    "Created: / 27.1.1998 / 21:40:00 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15552
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 15553
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15554
_WPopupMenuPeer__show:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15555
    "/ void _show (java.awt.Event)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15556
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15557
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15558
    "Created: / 12.11.1998 / 19:12:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15559
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15560
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15561
_WPopupMenuPeer_createMenu:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15562
    "/ void createMenu (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15563
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15564
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15565
    "Created: / 12.11.1998 / 19:12:43 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15566
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15567
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15568
_WPrintJob_end:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15569
    "/ void end ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15570
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15571
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15572
    "Created: / 12.11.1998 / 19:11:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15573
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15574
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15575
_WScrollPanePeer__getHScrollbarHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15576
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15577
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15578
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15579
    ^ HorizontalScrollBar new preferredExtent y.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15580
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15581
    "Created: / 9.4.1998 / 17:30:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15582
    "Modified: / 10.4.1998 / 14:59:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15583
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15584
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15585
_WScrollPanePeer__getVScrollbarWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15586
    |scrollPane|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15587
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15588
    scrollPane := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15589
    ^ ScrollBar new preferredExtent x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15590
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15591
    "Created: / 9.4.1998 / 17:29:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15592
    "Modified: / 10.4.1998 / 15:00:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15593
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15594
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15595
_WScrollPanePeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15596
    |jScrollPanePeer jScrollPane jFrame frame scrollPane
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15597
     lbl|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15598
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15599
    jScrollPanePeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15600
    jScrollPane := jScrollPanePeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15601
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15602
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15603
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15604
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15605
    "/ create with a simple view ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15606
    scrollPane := ScrollableView for:JavaView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15607
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15608
    self createdWindowsView:scrollPane for:jScrollPanePeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15609
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15610
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15611
	'WScrollPanePeer_create: ' print. frame print. ' -> ' print. scrollPane printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15612
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15613
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15614
    "Created: / 9.4.1998 / 17:25:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15615
    "Modified: / 9.4.1998 / 22:06:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15616
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15617
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15618
_WScrollPanePeer_getOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15619
    "/ int getOffset (int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15620
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15621
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15622
    "Created: / 12.11.1998 / 19:16:29 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15623
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15624
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15625
_WScrollPanePeer_getScrollChild:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15626
    "/ java.awt.Component getScrollChild ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15627
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15628
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15629
    "Created: / 12.11.1998 / 19:17:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15630
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15631
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15632
_WScrollPanePeer_setInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15633
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15634
    "Modified: / 9.4.1998 / 17:26:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15635
    "Created: / 9.4.1998 / 17:29:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15636
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15637
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15638
_WScrollPanePeer_setScrollPosition:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15639
    "/ void setScrollPosition (int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15640
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15641
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15642
    "Created: / 12.11.1998 / 19:16:44 / 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
_WScrollPanePeer_setSpans:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15646
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15647
    "Created: / 9.4.1998 / 17:31:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15648
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15649
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15650
_WScrollbarPeer__setValues:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15651
    |scrollBar value visibleAmount min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15652
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15653
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15654
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15655
    value := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15656
    visibleAmount := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15657
    min := nativeContext argAt:3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15658
    max := nativeContext argAt:4.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15659
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15660
    (min ~~ 0 or:[max ~~ 100]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15661
	scrollBar thumb start:min stop:max.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15662
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15663
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15664
    scrollBar thumbOrigin:value thumbHeight:visibleAmount.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15665
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15666
    "Created: / 13.1.1998 / 22:13:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15667
    "Modified: / 14.10.1998 / 14:53:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15668
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15669
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15670
_WScrollbarPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15671
    |jScrollbarPeer jScrollbar jFrame frame scrollBar
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15672
     min max|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15673
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15674
    jScrollbarPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15675
    jScrollbar := jScrollbarPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15676
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15677
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15678
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15679
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15680
    (jScrollbar instVarNamed:'orientation') == 0 "HORIZONTAL" ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15681
	scrollBar := HorizontalScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15682
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15683
	scrollBar := ScrollBar in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15684
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15685
    min := jScrollbar instVarNamed:'minimum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15686
    max := jScrollbar instVarNamed:'maximum'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15687
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15688
    scrollBar scrollDownAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15689
			scrollBar thumbOrigin:(scrollBar thumbOrigin + ((max-min)/10) min:max).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15690
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15691
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15692
    scrollBar scrollUpAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15693
			scrollBar thumbOrigin:(scrollBar thumbOrigin - ((max-min)/10) max:min).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15694
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:scrollBar thumbOrigin rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15695
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15696
    scrollBar scrollAction:[:org |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15697
			jScrollbarPeer perform:#'dragAbsolute(I)V' with:org rounded.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15698
		     ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15699
    self createdWindowsView:scrollBar for:jScrollbarPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15700
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15701
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15702
	'WScrollbarPeer_create: ' print. frame print. ' -> ' print. scrollBar printNL.
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
    "Created: / 5.1.1998 / 01:53:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15706
    "Modified: / 14.10.1998 / 15:36:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15707
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15708
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15709
_WScrollbarPeer_setLineIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15710
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15711
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15712
Transcript showCR:'JavaVM: WScrollbarPeer_setLineIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15713
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15714
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15715
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15716
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15717
"/    scrollBar thumb lineIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15718
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15719
    "Created: / 25.1.1998 / 11:52:19 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15720
    "Modified: / 14.10.1998 / 14:53:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15721
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15722
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15723
_WScrollbarPeer_setPageIncrement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15724
    |scrollBar inc|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15725
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15726
Transcript showCR:'JavaVM: WScrollbarPeer_setPageIncrement unimplemented'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15727
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15728
    scrollBar := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15729
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15730
    inc := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15731
"/    scrollBar thumb pageIncrement:inc.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15732
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15733
    "Created: / 25.1.1998 / 11:52:01 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15734
    "Modified: / 14.10.1998 / 14:54:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15735
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15736
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15737
_WTextAreaPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15738
    |jTextAreaPeer jFrame frame editTextView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15739
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15740
    jTextAreaPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15741
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15742
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15743
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15744
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15745
    editTextView := HVScrollableView for:EditTextView in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15746
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15747
    self createdWindowsView:editTextView for:jTextAreaPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15748
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15749
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15750
	'WTextAreaPeer_create: ' print. frame print. ' -> ' print. editTextView printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15751
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15753
    "Created: / 7.1.1998 / 21:49:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15754
    "Modified: / 15.1.1998 / 12:56:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15755
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15756
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15757
_WTextAreaPeer_insertText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15758
    |textView pos string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15759
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15760
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15761
    (textView isKindOf:ScrollableView) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15762
	textView := textView scrolledView
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15763
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15764
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15765
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15766
    string := Java as_ST_String:jstring.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15767
    pos := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15768
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15769
    textView insert:string at:pos.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15770
    textView cursorToCharacterPosition:pos + string size.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15771
    textView makeCursorVisible.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15772
"/ textView invalidateRepairNow:true.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15773
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15774
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15775
    "Created: / 7.1.1998 / 21:50:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15776
    "Modified: / 5.4.1998 / 17:37:24 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15777
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15778
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15779
_WTextAreaPeer_replaceText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15780
    "/ void replaceText (java.lang.String int int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15781
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15782
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15783
    "Created: / 12.11.1998 / 19:11:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15784
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15785
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15786
_WTextComponentPeer_enableEditing:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15787
    |textView enabled|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15788
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15789
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15790
    enabled := (nativeContext argAt:1) ~~ 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15792
    ^ textView readOnly:enabled not
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15793
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15794
    "Created: / 5.1.1998 / 01:29:38 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15795
    "Modified: / 25.1.1998 / 16:29:56 / 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
_WTextComponentPeer_getSelectionEnd:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15799
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15800
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15801
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15802
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15803
    ^ textView characterPositionOfSelectionEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15804
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15805
    "Created: / 8.1.1998 / 17:41:56 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15806
    "Modified: / 15.1.1998 / 15:47:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15807
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15808
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15809
_WTextComponentPeer_getSelectionStart:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15810
    |textView|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15811
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15812
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15813
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15814
    ^ textView characterPositionOfSelection - 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15815
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15816
    "Created: / 15.8.1997 / 15:45:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15817
    "Modified: / 15.1.1998 / 15:46:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15818
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15819
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15820
_WTextComponentPeer_getText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15821
    |textView string jString|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15822
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15823
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15824
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15825
    string := textView contents asString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15826
    jString := Java as_String:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15827
    ^ jString
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15828
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15829
    "Created: / 6.1.1998 / 21:05:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15830
    "Modified: / 8.1.1998 / 17:36:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15831
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15832
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15833
_WTextComponentPeer_select:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15834
    |textView selStart selEnd|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15835
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15836
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15837
    selStart := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15838
    selEnd := nativeContext argAt:2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15839
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15840
    selStart == selEnd ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15841
	"/ clear selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15842
	textView unselect.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15843
	"/ and set caret
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15844
	textView cursorToCharacterPosition:selStart + 1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15845
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15846
	"/ change selection
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15847
	textView selectFromCharacterPosition:selStart+1 to:selEnd
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15848
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15849
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15850
    "Created: / 15.8.1997 / 15:45:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15851
    "Modified: / 15.1.1998 / 21:55:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15852
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15853
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15854
_WTextComponentPeer_setText:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15855
    |textView string jstring|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15856
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15857
    textView := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15858
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15859
    jstring := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15860
    jstring notNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15861
	string := Java as_ST_String:jstring
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15862
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15863
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15864
    textView contents:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15865
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15866
    "Created: / 5.1.1998 / 01:28:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15867
    "Modified: / 11.12.1998 / 12:16:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15868
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15869
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15870
_WTextFieldPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15871
    |jTextFieldPeer jFrame frame editField|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15872
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15873
    jTextFieldPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15874
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15875
    jFrame := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15876
    frame := jFrame instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15877
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15878
    editField := EditField in:frame.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15879
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15880
    self createdWindowsView:editField for:jTextFieldPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15881
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15882
    editField crAction:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15883
			jTextFieldPeer perform:#handleAction.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15884
		  ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15885
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15886
	'WTextFieldPeer_create: ' print. frame print. ' -> ' print. editField printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15887
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15888
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15889
    "Created: / 5.1.1998 / 01:27:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15890
    "Modified: / 4.11.1998 / 21:07:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15891
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15892
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15893
_WTextFieldPeer_setEchoCharacter:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15894
    |editField char|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15895
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15896
    editField := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15897
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15898
    char := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15899
    editField passwordCharacter:(Character value:char).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15900
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15901
    "Created: / 25.1.1998 / 16:28:30 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15902
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15903
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15904
_WToolkit_beep:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15905
    "/ void beep ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15906
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15907
    Screen current beep
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15908
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15909
    "Created: / 12.11.1998 / 19:09:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15910
    "Modified: / 11.12.1998 / 12:15:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15911
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15912
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15913
_WToolkit_eventLoop:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15914
    (JavaEventThread notNil and:[JavaEventThread isDead not]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15915
	'JavaVM [warning]: oops - two threads executing eventLoop' errorPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15916
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15917
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15918
    JavaEventThread := Processor activeProcess.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15919
    [
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15920
	[true] whileTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15921
	    AbortSignal handle:[:ex |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15922
		ex return
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15923
	    ] do:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15924
		self doWindowsEventThread.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15925
	    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15926
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15927
    ] valueNowOrOnUnwindDo:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15928
	JavaEventThread := nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15929
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15930
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15931
    "Created: / 6.1.1998 / 21:01:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15932
    "Modified: / 8.1.1999 / 17:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15933
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15934
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15935
_WToolkit_getComboHeightOffset:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15936
    ^ 0
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15937
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15938
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15939
    "Created: / 22.10.1998 / 00:59:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15940
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15941
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15942
_WToolkit_getScreenHeight:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15943
    ^ Screen current height
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15944
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15945
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15946
    "Created: / 13.1.1998 / 09:24:45 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15947
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15948
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15949
_WToolkit_getScreenResolution:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15950
    ^ Screen current resolution x rounded
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15951
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15952
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15953
    "Created: / 17.1.1998 / 21:54:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15954
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15955
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15956
_WToolkit_getScreenWidth:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15957
    ^ Screen current width
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15958
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15959
    "Modified: / 20.3.1997 / 13:50:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15960
    "Created: / 13.1.1998 / 09:24:37 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15961
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15963
_WToolkit_init:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15964
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15965
    "Created: / 3.1.1998 / 02:30:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15966
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15967
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15968
_WToolkit_loadSystemColors:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15969
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15970
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15971
    "Modified: / 18.3.1997 / 18:43:26 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15972
    "Created: / 5.1.1998 / 02:19:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15973
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15974
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15975
_WToolkit_makeColorModel:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15976
    "/ java.awt.image.ColorModel makeColorModel ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15977
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15978
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15979
    "Created: / 12.11.1998 / 19:08:47 / 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
_WToolkit_sync:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15983
    "/ void sync ()
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15984
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15985
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15986
    "Created: / 12.11.1998 / 19:09:14 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15987
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15988
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15989
_WWindowPeer__setResizable:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15990
    |view onOff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15991
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15992
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15993
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15994
    onOff := (nativeContext argAt:1) == 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15995
    view isTopView ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15996
	onOff ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15997
	    view minExtent:10@10.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15998
	    view maxExtent:(Screen current extent).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 15999
	] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16000
	    view minExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16001
	    view maxExtent:view extent.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16002
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16003
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16004
	(view isMemberOf:JavaEmbeddedFrameView) ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16005
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16006
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16007
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16008
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16009
"/ 'JAVA: WWindowPeer_setResizable: ' print. view print. ' yes/no: ' print. onOff printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16010
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16011
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16012
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16013
    "Created: / 5.1.1998 / 00:57:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16014
    "Modified: / 16.1.1998 / 18:08:00 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16015
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16016
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16017
_WWindowPeer__setTitle:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16018
    |view jString string|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16019
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16020
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16021
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16022
    jString := nativeContext argAt:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16023
    string := Java as_ST_String:jString.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16024
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16025
"/ 'JAVA: WWindowPeer_pSetTitle: ' print. string print. ' ' print. view printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16026
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16027
    view label:string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16028
    ^ nil
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16030
    "Created: / 5.1.1998 / 00:57:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16031
    "Modified: / 8.1.1998 / 17:37:41 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16032
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16033
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16034
_WWindowPeer_create:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16035
    "/ void create (sun.awt.windows.WComponentPeer)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16036
    |jWindowPeer jWindow top window pDataIdx|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16037
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16038
    jWindowPeer := nativeContext receiver.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16039
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16040
    jWindow := jWindowPeer instVarNamed:'target'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16041
    window := jWindowPeer instVarNamed:'pData'.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16042
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16043
    (window notNil and:[window ~~ 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16044
	WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16045
	    'JAVA: window view already created: ' infoPrint.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16046
	    jWindowPeer class name infoPrintCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16047
	].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16048
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16049
"/ OLD
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16050
"/        window := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16051
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16052
"/        JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16053
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16054
	window := JavaPopUpView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16055
	window borderWidth:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16056
	window level:0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16057
	window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16058
	window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16059
	self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16060
	JavaWindowGroup addTopView:window.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16062
"/        top := StandardSystemView new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16063
"/        window := JavaView origin:0.0@0.0 corner:1.0@1.0 in:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16064
"/        window delegate:self.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16065
"/        window javaPeer:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16066
"/        self createdWindowsView:window for:jWindowPeer.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16067
"/        JavaWindowGroup addTopView:top.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16068
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16069
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16071
    WindowCreationTrace == true ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16072
	'JAVA: WWindowPeer_create: ' print. jWindowPeer displayString print.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16073
	' window: ' print. window printNL.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16074
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16075
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16076
    "Created: / 4.1.1998 / 17:56:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16077
    "Modified: / 4.12.1998 / 17:37:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16080
_WWindowPeer_getContainerElement:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16081
    "/ java.awt.Component getContainerElement (java.awt.Container int)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16082
    UnimplementedNativeMethodSignal raise
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16083
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16084
    "Created: / 12.11.1998 / 19:10:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16085
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16086
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16087
_WWindowPeer_toBack:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16088
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16089
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16090
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16091
    view lower.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16092
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16093
    "Created: / 7.5.1998 / 00:23:03 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16094
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16095
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16096
_WWindowPeer_toFront:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16097
    |view|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16098
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16099
    view := self viewForWPeer:nativeContext.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16100
    view raise.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16101
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16102
    "Created: / 9.4.1998 / 22:17:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16103
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16104
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16105
_WWindowPeer_updateInsets:nativeContext
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16106
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16107
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16108
    "Modified: / 18.3.1997 / 18:43:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16109
    "Created: / 4.1.1998 / 18:09:04 / cg"
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16110
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16111
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16112
_Win32Process_create:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16113
    "really create a win32 process"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16114
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16115
    |env cmd jProcess p inPipe outPipe errorPipe|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16116
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16117
    jProcess := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16118
    cmd := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16119
    cmd := Java as_ST_String:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16120
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16121
    env := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16122
    env notNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16123
	self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16124
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16125
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16126
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16127
    p := Win32Process new.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16128
    p command:cmd.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16129
    p environment:env.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16130
    p inStream:inPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16131
    p outStream:outPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16132
    p errorStream:errorPipe.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16133
    p directory:nil.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16134
    p startProcess.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16135
self halt.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16136
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16137
    jProcess instVarNamed:'handle' put:p.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16138
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16139
    "Created: / 10.11.1998 / 19:50:31 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16140
    "Modified: / 10.11.1998 / 21:34:18 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16141
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16142
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16143
_X11FontMetrics_getMFCharSegmentWidth:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16144
    "get multi-font string-segment width.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16145
     Not yet supported - use standard strings width"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16146
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16147
    |jMetrics jFont jFontDescr stFont w
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16148
     bool1 cp offs lenght bp int1|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16149
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16150
    jMetrics := nativeContext receiver.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16151
    jFont := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16152
    jFontDescr := nativeContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16153
    cp := nativeContext argAt:3.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16154
    lenght := nativeContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16155
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16156
    stFont := jFont instVarNamed:'pData'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16157
    (stFont isNil or:[stFont == 0]) ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16158
        self halt
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16159
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16160
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16161
    stFont device isNil ifTrue:[
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16162
        stFont := stFont on:Display.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16163
        jFont instVarNamed:'pData' put:stFont.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16164
    ].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16165
    w := stFont widthOf:cp from:1 to:lenght.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16166
    ^ w.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16167
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16168
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16169
_X11FontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16170
    ^ self _WFontMetrics_init:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16171
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16172
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16173
_X11GraphicsDevice_getConfigType:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16174
    "/ new with jdk1.2 ...
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16175
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16176
    |configNr cls|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16177
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16178
    "/ for now, only one config.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16179
    configNr := nativeContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16180
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16181
    cls := Java classNamed:'java.awt.GraphicsDevice'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16182
    ^ cls instVarNamed:'TYPE_RASTER_SCREEN'.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16183
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16184
    "Created: / 28.1.1998 / 22:19:05 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16185
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16186
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16187
_X11GraphicsDevice_getNumConfigs:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16188
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16189
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16190
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16191
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16192
    "Created: / 28.1.1998 / 22:13:26 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16193
    "Modified: / 28.1.1998 / 22:14:33 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16194
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16195
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16196
_X11GraphicsEnvironment_getNumScreens:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16197
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16198
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16199
    "/ could return the actual number of screens ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16200
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16201
    ^ 1
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16202
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16203
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16204
    "Modified: / 28.1.1998 / 22:12:32 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16205
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16206
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16207
_X11GraphicsEnvironment_initDisplay:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16208
    "/ new with jdk1.2 ...
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16209
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16210
    "Created: / 28.1.1998 / 01:50:22 / cg"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16211
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16212
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16213
_X11Graphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16214
    ^ self _WGraphics_changeClip:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16215
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16216
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16217
_X11Graphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16218
    ^ self _WGraphics_createFromComponent:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16219
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16220
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16221
_X11Graphics_disposeImpl:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16222
    ^ self _WGraphics_dispose:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16223
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16224
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16225
_X11Graphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16226
    ^ self _WGraphics_drawMFCharsSegment:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16227
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16228
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16229
_X11Graphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16230
    ^ self _WGraphics_drawRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16231
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16232
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16233
_X11Graphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16234
    ^ self _WGraphics_fillOval:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16235
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16236
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16237
_X11Graphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16238
    ^ self _WGraphics_fillRect:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16239
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16240
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16241
_X11Graphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16242
    ^ self _WGraphics_pSetFont:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16243
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16244
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16245
_X11Graphics_pSetForeground:nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16246
    ^ self _WGraphics_pSetForeground:nativeContext
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16247
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 16248
1528
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16249
!JavaVM class methodsFor:'native - old-style (converted)'!
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16250
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16251
_FileInputStream_skip:nativeContext
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16252
    "/ long skip (long)
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16253
    |file nSkip nSkipped|
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16254
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16255
    file := self validateFile:(nativeContext receiver).
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16256
    nSkip := nativeContext argAt:1.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16257
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16258
    file == Stdin ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16259
	file := StdinReplacementFileQuerySignal raiseRequest.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16260
	file isNil ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16261
	    ^ -1
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16262
	]
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16263
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16264
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16265
    FileIOTrace ifTrue:[
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16266
	(('JAVA: skip %1 byte(s) from ' bindWith:nSkip printString) , file pathName) infoPrintCR.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16267
    ].
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16268
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16269
    file skip:nSkip.
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16270
    ^ nSkip
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16271
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16272
    "Modified: / 27.1.1999 / 20:36:11 / cg"
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16273
! !
b14aaf857d7b - JavaVM kludges for file/socket finalization
vranyj1
parents: 1527
diff changeset
 16274
1572
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16275
!JavaVM class methodsFor:'native - stx.libjava'!
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16276
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16277
_stx_libjava_ClassLoader_findClassS: nativeContext
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16278
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16279
    <javanative: 'stx/libjava/ClassLoader' name: 'findCla'>
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16280
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16281
    | nm cls |
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16282
    nm := Java as_ST_String: (nativeContext argAt: 1).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16283
    (nm startsWith: 'SMALLTALK.') ifFalse:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16284
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16285
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16286
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16287
    nm := nm copyFrom: 'SMALLTALK.' size + 1.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16288
    cls := Smalltalk at: nm asSymbol.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16289
    cls isNil ifTrue:[
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16290
        self throwClassNotFoundException: ('No such smalltalk class (%1)' bindWith: nm).
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16291
        ^self
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16292
    ].
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16293
    ^Reflection javaClassObjectForClass: cls.
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16294
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16295
    "Modified: / 30-07-2012 / 23:19:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16296
! !
e966fdad0a23 - stx_libjava
vranyj1
parents: 1570
diff changeset
 16297
1372
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16298
!JavaVM class methodsFor:'native - stx.libjava.groovy'!
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16299
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16300
_stx_libjava_groovy_GroovyClassLoader_SystemClassCollector_getDefiningClassLoader: nativeContext
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16301
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16302
    <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
 16303
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16304
    ^ SystemClassLoader
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16305
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16306
    "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
 16307
! !
dea574a1b6b3 Some initial class reloading support. Not yet finished, just sketched out.
vranyj1
parents: 1368
diff changeset
 16308
1090
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16309
!JavaVM class methodsFor:'native - stx.libjava.tests'!
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16310
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16311
_stx_libjava_tests_MonitorTests_abort: nativeContext
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16312
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16313
    <javanative: 'stx/libjava/tests/MonitorTests' name: 'abort()V'>
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16314
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16315
    AbortOperationRequest raiseRequest.
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16316
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16317
    "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16318
! !
0b9c332d367c Few workarounds for monitors
vranyj1
parents: 1084
diff changeset
 16319
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16320
!JavaVM class methodsFor:'native - sun.font'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16321
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16322
_sun_font_FontManager_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16323
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16324
    <javanative: 'sun/font/FontManager' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16325
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16326
    "Modified: / 09-02-2012 / 22:56:51 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16327
!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16328
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16329
_sun_font_StrikeCache_getGlyphCacheDescription: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16330
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16331
    <javanative: 'sun/font/StrikeCache' name: 'getGlyphCacheDescription([J)V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16332
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16333
    "Modified: / 09-02-2012 / 22:57:08 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16334
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16335
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16336
!JavaVM class methodsFor:'native - sun.io'!
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16337
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16338
_sun_io_Win32ErrorMode_setErrorMode: nativeContext
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16339
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16340
    <javanative: 'sun/io/Win32ErrorMode' name: 'setErrorMode(J)J'>
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16341
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16342
    "FIXME: Ignored for now"
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16343
    ^0
1599
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16344
79a644cf787e - JavaVM
vranyj1
parents: 1598
diff changeset
 16345
    "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
 16346
! !
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 16347
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16348
!JavaVM class methodsFor:'native - sun.java2d'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16349
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16350
_sun_java2d_Disposer_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16351
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16352
    <javanative: 'sun/java2d/Disposer' name: 'initIDs()V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16353
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16354
    "Modified: / 09-02-2012 / 22:54:59 / mh <hlopik@gmail.com>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16355
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16356
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16357
!JavaVM class methodsFor:'native - sun.java2d.cmm.lcms'!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16358
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16359
_sun_java2d_cmm_lcms_LCMS_getTagData: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16360
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16361
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagData(JI[B)V'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16362
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16363
    | profileId tag data |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16364
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16365
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16366
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16367
    data := nativeContext argAt: 4.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16368
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16369
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16370
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16371
    tag = 1751474532 ifTrue:[
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16372
        data replaceBytesFrom:1 
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16373
                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
 16374
                startingAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16375
        ^self.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16376
    ].
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16377
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16378
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16379
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16380
    "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
 16381
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16382
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16383
_sun_java2d_cmm_lcms_LCMS_getTagSize: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16384
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16385
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'getTagSize(JI)I'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16386
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16387
    | profileId tag |
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16388
    profileId := nativeContext argAt: 1.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16389
    tag := nativeContext argAt: 3.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16390
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16391
    self assert: (nativeContext argAt: 1) = 12344321.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16392
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16393
    "Magic numbers based on trace of real Java code"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16394
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16395
    tag = 1751474532 ifTrue:[ ^ 128 ].
1253
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16396
    
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16397
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16398
    self breakPoint: #jv.
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16399
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16400
    ^128 "Some magic default"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16401
1481
28b926d3cdb5 - JUnitTestCaseProxy
vranyj1
parents: 1478
diff changeset
 16402
    "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
 16403
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16404
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16405
_sun_java2d_cmm_lcms_LCMS_initLCMS: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16406
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16407
    <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
 16408
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16409
    "Nothing to do"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16410
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16411
    "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
 16412
!
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16413
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16414
_sun_java2d_cmm_lcms_LCMS_loadProfile: nativeContext
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16415
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16416
    <javanative: 'sun/java2d/cmm/lcms/LCMS' name: 'loadProfile([B)J'>
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16417
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16418
    "FAKE, return some magic"
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16419
    ^12344321
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16420
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16421
    "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
 16422
! !
0ce45e884e08 Few more fixes in native methods
vranyj1
parents: 1251
diff changeset
 16423
1353
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16424
!JavaVM class methodsFor:'native - sun.java2d.pipe'!
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16425
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16426
_sun_java2d_pipe_Region_initIDs: nativeContext
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16427
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16428
    <javanative: 'sun/java2d/pipe/Region' name: 'initIDs()V'>
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16429
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16430
    "Modified: / 09-02-2012 / 22:55:09 / mh <hlopik@gmail.com>"
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16431
! !
2968f8acb434 one step closer to eager method resolving
hlopkmar
parents: 1349
diff changeset
 16432
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16433
!JavaVM class methodsFor:'native - sun.management'!
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16434
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16435
_sun_management_MemoryImpl_getMemoryManagers0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16436
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16437
    <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
 16438
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16439
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16440
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16441
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16442
    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
 16443
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16444
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16445
    "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
 16446
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16447
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16448
_sun_management_MemoryImpl_getMemoryPools0: nativeContext
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16449
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16450
    <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
 16451
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16452
    "HACK, we'll see"
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16453
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16454
    | beanCls |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16455
    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
 16456
    ^beanCls javaArrayClass new:0.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16457
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16458
    "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
 16459
!
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 16460
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16461
_sun_management_VMManagementImpl_getStartupTime: nativeContext 
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16462
    <javanative: 'sun/management/VMManagementImpl' name: 'getStartupTime()J'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16463
    ^ StartupTime.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16464
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16465
    "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
 16466
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16467
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16468
_sun_management_VMManagementImpl_getVersion0: nativeContext 
850
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16469
    <javanative: 'sun/management/VMManagementImpl' name: 'getVersion0'>
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16470
    ^ Java as_String: '1.2'.
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16471
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16472
    "Modified: / 03-11-2011 / 18:42:48 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16473
!
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16474
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16475
_sun_management_VMManagementImpl_initOptionalSupportFields: nativeContext 
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16476
    <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
 16477
    | cls |
1080
f842a3bac28a playing with tomcat natives
hlopkmar
parents: 1079
diff changeset
 16478
    cls := nativeContext receiver.
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16479
1081
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16480
    cls instVarNamed: #compTimeMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16481
    cls instVarNamed: #threadContentionMonitoringSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16482
    cls instVarNamed: #currentThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16483
    cls instVarNamed: #otherThreadCpuTimeSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16484
    cls instVarNamed: #bootClassPathSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16485
    cls instVarNamed: #synchronizerUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16486
    cls instVarNamed: #objectMonitorUsageSupport put: 0.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16487
    ^ self.
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16488
1275
8cad19554d21 fixes to make tomcat work for mh
hlopkmar
parents: 1269
diff changeset
 16489
    "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
 16490
!
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16491
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16492
_sun_management_VMManagementImpl_isThreadCpuTimeEnabled: nativeContext
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16493
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16494
    <javanative: 'sun/management/VMManagementImpl' name: 'isThreadCpuTimeEnabled()Z'>
0c91ffb1ef21 few more natives.. pls review I have bad feelings about that
hlopkmar
parents: 1080
diff changeset
 16495
1083
vranyj1
parents: 1081
diff changeset
 16496
    ^ 0 "/false should be safe, we'll see...
vranyj1
parents: 1081
diff changeset
 16497
vranyj1
parents: 1081
diff changeset
 16498
    "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
 16499
! !
160c389771a6 Fixes in resolving methodrefs for array methods
vranyj1
parents: 846
diff changeset
 16500
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16501
!JavaVM class methodsFor:'native - sun.misc'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16502
1204
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16503
_sun_misc_GC_maxObjectInspectionAge: nativeContext
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16504
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16505
    <javanative: 'sun/misc/GC' name: 'maxObjectInspectionAge()J'>
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16506
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16507
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16508
    /**
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16509
     * Returns the maximum <em>object-inspection age</em>, which is the number
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16510
     * of real-time milliseconds that have elapsed since the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16511
     * least-recently-inspected heap object was last inspected by the garbage
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16512
     * collector.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16513
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16514
     * <p> For simple stop-the-world collectors this value is just the time
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16515
     * since the most recent collection.  For generational collectors it is the
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16516
     * time since the oldest generation was most recently collected.  Other
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16517
     * collectors are free to return a pessimistic estimate of the elapsed
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16518
     * time, or simply the time since the last full collection was performed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16519
     *
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16520
     * <p> Note that in the presence of reference objects, a given object that
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16521
     * is no longer strongly reachable may have to be inspected multiple times
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16522
     * before it can be reclaimed.
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16523
     */
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16524
    public static native long maxObjectInspectionAge();
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16525
    "
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16526
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16527
    ^Random nextIntegerBetween: 0 and: 3600. "Just return some number"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16528
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16529
    "Modified: / 02-12-2011 / 21:56:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16530
!
6c2b887399e8 Few small fixes
vranyj1
parents: 1202
diff changeset
 16531
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16532
_sun_misc_Signal_findSignal: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16533
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16534
    <javanative: 'sun/misc/Signal' name: 'findSignal'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16535
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16536
        | input signame |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16537
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16538
    input := Java as_ST_String: (aJavaContext argAt: 1).
919
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16539
    OperatingSystem isUNIXlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16540
        signame := 'SIG', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16541
        ^UnixOperatingSystem signalNamed: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16542
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16543
    OperatingSystem isMSWINDOWSlike ifTrue:[
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16544
        signame := 'sig', (input asUppercase).
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16545
        ^Win32OperatingSystem perform: signame asSymbol.
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16546
    ].
11237e0d58e5 Fixes to boot on Windows using SunJDK6 rt.jar
vranyj1
parents: 918
diff changeset
 16547
    self error: 'Unsupported OS'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16548
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16549
    "Created: / 11-12-2010 / 15:22:07 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16550
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16551
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16552
_sun_misc_Signal_handle0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16553
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16554
    <javanative: 'sun/misc/Signal' name: 'handle0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16555
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16556
        self breakPoint: #libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16557
    ^ 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16558
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16559
    "Created: / 11-12-2010 / 16:33:38 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16560
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16561
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16562
_sun_misc_Unsafe_addressSize: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16563
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16564
    <javanative: 'sun/misc/Unsafe' name: 'addressSize()I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16565
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16566
    ^ExternalAddress pointerSize
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16567
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16568
    "Modified: / 10-07-2012 / 01:19:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16569
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 16570
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16571
_sun_misc_Unsafe_allocateInstance: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16572
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16573
    <javanative: 'sun/misc/Unsafe' name: 'allocateInstance'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16574
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16575
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16576
    /** Allocate an instance but do not run any constructor.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16577
        Initializes the class if it has not yet been. */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16578
    public native Object allocateInstance(Class cls)
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16579
        throws InstantiationException;
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16580
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16581
    | cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16582
    cls := self reflection classForJavaClassObject: (nativeContext argAt:1).
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16583
    cls classInit.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16584
    ^cls newCleared
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16585
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16586
    "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
 16587
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16588
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16589
_sun_misc_Unsafe_allocateMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16590
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16591
    <javanative: 'sun/misc/Unsafe' name: 'allocateMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16592
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16593
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16594
    | size |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16595
    size := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16596
    ^SimulatedNativeMemory malloc: size.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16597
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16598
    "Created: / 07-12-2010 / 21:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16599
    "Modified: / 07-12-2010 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16600
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16601
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16602
_sun_misc_Unsafe_arrayBaseOffset: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16603
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16604
    <javanative: 'sun/misc/Unsafe' name: 'arrayBaseOffset'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16605
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16606
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16607
    * Report the offset of the first element in the storage allocation of a
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16608
    * given array class.  If {@link #arrayIndexScale} returns a non-zero value
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16609
    * for the same class, you may use that scale factor, together with this
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16610
    * base offset, to form new offsets to access elements of arrays of the
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16611
    * given class.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16612
    *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16613
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16614
    * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16615
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16616
    public native int arrayBaseOffset(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16617
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16618
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16619
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16620
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16621
    "Modified (comment): / 10-08-2011 / 01:22:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16622
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16623
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16624
_sun_misc_Unsafe_arrayIndexScale: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16625
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16626
    <javanative: 'sun/misc/Unsafe' name: 'arrayIndexScale'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16627
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16628
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16629
      /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16630
      * Report the scale factor for addressing elements in the storage
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16631
      * allocation of a given array class.  However, arrays of 'narrow' types
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16632
      * will generally not work properly with accessors like {@link
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16633
      * #getByte(Object, int)}, so the scale factor for such classes is reported
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16634
      * as zero.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16635
      *
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16636
      * @see #arrayBaseOffset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16637
      * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16638
      * @see #putInt(Object, long, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16639
      */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16640
    public native int arrayIndexScale(Class arrayClass);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16641
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16642
    ^ 1
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16643
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16644
    "Modified: / 10-08-2011 / 01:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16645
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16646
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16647
_sun_misc_Unsafe_compareAndSwapInt: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16648
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16649
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16650
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16651
    ^self _sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16652
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16653
    "Created: / 22-11-2010 / 18:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16654
    "Modified: / 07-08-2011 / 21:50:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16655
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16656
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16657
_sun_misc_Unsafe_compareAndSwapLong: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16658
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16659
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapLong'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16660
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16661
        "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16662
    /**
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16663
     * Atomically update Java variable to <tt>x</tt> if it is currently
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16664
     * holding <tt>expected</tt>.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16665
     * @return <tt>true</tt> if successful
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16666
     */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16667
    public final native boolean compareAndSwapInt(Object o, long offset,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16668
                                                  long expected,
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16669
                                                  long new);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16670
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16671
    | o offset expected real new ok |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16672
    o := aJavaContext argAt:1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16673
    offset := aJavaContext argAt:2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16674
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16675
    expected := aJavaContext argAt:4.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16676
    new := aJavaContext argAt:6.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16677
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16678
    OperatingSystem blockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16679
    real := o instVarAt: offset.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16680
    (real == expected)
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16681
            ifTrue:[o instVarAt: offset put: new. ok := 1]
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16682
            ifFalse:[ok := 1].
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16683
    OperatingSystem unblockInterrupts.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16684
    ^ok
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16685
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16686
    "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
 16687
!
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16688
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16689
_sun_misc_Unsafe_compareAndSwapObject: aJavaContext
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16690
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16691
    <javanative: 'sun/misc/Unsafe' name: 'compareAndSwapInt'>
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16692
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16693
        "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16694
    /**
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16695
     * Atomically update Java variable to <tt>x</tt> if it is currently
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16696
     * holding <tt>expected</tt>.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16697
     * @return <tt>true</tt> if successful
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16698
     */
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16699
    public final native boolean compareAndSwapInt(Object o, long offset,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16700
                                                  int expected,
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16701
                                                  int new);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16702
    "
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16703
    | o offset expected real new ok |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16704
    o := aJavaContext argAt:1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16705
    offset := aJavaContext argAt:2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16706
    "offset is long, so aJavaContext at:3 is dummy nil!!!!!!"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16707
    expected := aJavaContext argAt:4.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16708
    new := aJavaContext argAt:5.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16709
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16710
    OperatingSystem blockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16711
    real := o instVarAt: offset.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16712
    (real == expected)
885
5934b58e7507 JavaVM: few more primitives
vranyj1
parents: 883
diff changeset
 16713
            ifTrue:[o instVarAt: offset put: new. ok := 1]
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
 16714
            ifFalse:[ok := 0].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16715
    OperatingSystem unblockInterrupts.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16716
    ^ok
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16717
1513
58c59c580675 - JavaVM fixes in natives (RandomAccessFile, mostly)
vranyj1
parents: 1512
diff changeset
 16718
    "Modified: / 06-07-2012 / 09:31:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16719
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16720
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16721
_sun_misc_Unsafe_copyMemory: nativeContext
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16722
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16723
    /**
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16724
     * 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
 16725
     * block.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16726
     */
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16727
    public native void copyMemory(long srcAddress, long destAddress,
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16728
                                  long bytes);
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16729
    "
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16730
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16731
    <javanative: 'sun/misc/Unsafe' name: 'copyMemory(JJJ)V'>
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16732
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16733
    | srcAddress dstAddress bytes |
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16734
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16735
    srcAddress := nativeContext argAt:1.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16736
    dstAddress := nativeContext argAt:3.
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16737
    bytes      := nativeContext argAt:5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16738
    SimulatedNativeMemory bcopy: srcAddress to: dstAddress length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16739
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 16740
    "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
 16741
!
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 16742
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16743
_sun_misc_Unsafe_defineClass: nativeContext
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16744
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16745
    <javanative: 'sun/misc/Unsafe' name: 'defineClass'>
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16746
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16747
        "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16748
    /**
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16749
     * Tell the VM to define a class, without security checks.  By default, the
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16750
     * class loader and protection domain come from the caller's class.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16751
     */
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16752
    public native Class defineClass(String name, byte[] b, int off, int len,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16753
                                    ClassLoader loader,
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16754
                                    ProtectionDomain protectionDomain);
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16755
    "
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16756
    | name b off len loader protectionDomain bs cls |
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16757
    name := nativeContext argAt: 1.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16758
    b := nativeContext argAt: 2.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16759
    off := nativeContext argAt: 3.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16760
    len := nativeContext argAt: 4.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16761
    loader := nativeContext argAt: 5.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16762
    protectionDomain := nativeContext argAt: 6.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16763
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16764
    bs := (off = 0 and: [len = b size]) 
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16765
            ifTrue:[b readStream]
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16766
            ifFalse:[(b copyFrom: off + 1 to: off + len) readStream].
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16767
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16768
    cls := JavaClassReader readStream: bs.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16769
    cls classLoader: loader.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16770
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16771
    ^self reflection javaClassObjectForClass: cls.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16772
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16773
    "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
 16774
!
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 16775
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16776
_sun_misc_Unsafe_ensureClassInitialized: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16777
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16778
    <javanative: 'sun/misc/Unsafe' name: 'ensureClassInitialized'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16779
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16780
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16781
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16782
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16783
     "Sometimes there is a nil. I don't know why, so I did quickfix"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16784
    self breakPoint:#libjava.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16785
    class ifNotNil:[class classInit.].
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16786
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16787
    "Created: / 11-12-2010 / 15:01:36 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16788
    "Modified: / 25-12-2010 / 09:43:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16789
    "Modified: / 08-01-2011 / 15:11:21 / Jan Kurs <kurs.jan@post.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16790
    "Modified: / 28-01-2011 / 15:19:31 / Marcel Hlopko <hlopik@gmail.com>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16791
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16792
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16793
_sun_misc_Unsafe_freeMemory: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16794
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16795
    <javanative: 'sun/misc/Unsafe' name: 'freeMemory'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16796
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16797
    | address  |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16798
    address := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16799
    ^SimulatedNativeMemory free: address
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16800
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16801
    "Created: / 09-12-2010 / 17:56:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16802
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16803
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16804
_sun_misc_Unsafe_getBoolean: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16805
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16806
    <javanative: 'sun/misc/Unsafe' name: 'getBoolean(Ljava/lang/Object;J)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16807
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16808
    | o offset |
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16809
    o := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16810
    offset := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16811
    ^o instVarAt: offset
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16812
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 16813
    "Modified: / 19-11-2011 / 10:49:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16814
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16815
1151
vranyj1
parents: 1150
diff changeset
 16816
_sun_misc_Unsafe_getByte: nativeContext
vranyj1
parents: 1150
diff changeset
 16817
vranyj1
parents: 1150
diff changeset
 16818
    <javanative: 'sun/misc/Unsafe' name: 'getByte(Ljava/lang/ObjectJ)B'>
vranyj1
parents: 1150
diff changeset
 16819
    <javanative: 'sun/misc/Unsafe' name: 'getByte(J)B'>
vranyj1
parents: 1150
diff changeset
 16820
vranyj1
parents: 1150
diff changeset
 16821
    | object offset address |
vranyj1
parents: 1150
diff changeset
 16822
    nativeContext numArgs == 3 ifTrue:[
vranyj1
parents: 1150
diff changeset
 16823
        "getByte(Ljava/lang/Object;J)V"
vranyj1
parents: 1150
diff changeset
 16824
        object := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16825
        offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16826
        ^object instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16827
    ].
vranyj1
parents: 1150
diff changeset
 16828
    nativeContext numArgs == 2 ifTrue:[
vranyj1
parents: 1150
diff changeset
 16829
        "getByte(J)V"
vranyj1
parents: 1150
diff changeset
 16830
        address := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16831
        ^SimulatedNativeMemory byteAt: address
vranyj1
parents: 1150
diff changeset
 16832
    ].
vranyj1
parents: 1150
diff changeset
 16833
vranyj1
parents: 1150
diff changeset
 16834
    self internalError:'Unssuported getByte() variant'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16835
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16836
    "Created: / 09-12-2010 / 17:29:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16837
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16838
1151
vranyj1
parents: 1150
diff changeset
 16839
_sun_misc_Unsafe_getChar: nativeContext
vranyj1
parents: 1150
diff changeset
 16840
vranyj1
parents: 1150
diff changeset
 16841
    <javanative: 'sun/misc/Unsafe' name: 'getChar(Ljava/lang/Object;J)C'>
vranyj1
parents: 1150
diff changeset
 16842
vranyj1
parents: 1150
diff changeset
 16843
    | o offset |
vranyj1
parents: 1150
diff changeset
 16844
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16845
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16846
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16847
vranyj1
parents: 1150
diff changeset
 16848
    "Modified: / 22-11-2011 / 14:51:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16849
!
vranyj1
parents: 1150
diff changeset
 16850
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16851
_sun_misc_Unsafe_getDouble: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16852
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16853
    <javanative: 'sun/misc/Unsafe' name: 'getDouble(Ljava/lang/Object;J)D'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16854
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16855
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16856
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16857
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16858
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16859
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16860
    "Modified: / 10-05-2012 / 17:01:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16861
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16862
1151
vranyj1
parents: 1150
diff changeset
 16863
_sun_misc_Unsafe_getFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 16864
vranyj1
parents: 1150
diff changeset
 16865
    <javanative: 'sun/misc/Unsafe' name: 'getFloat(Ljava/lang/Object;J)F'>
vranyj1
parents: 1150
diff changeset
 16866
vranyj1
parents: 1150
diff changeset
 16867
    | o offset |
vranyj1
parents: 1150
diff changeset
 16868
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16869
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16870
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16871
vranyj1
parents: 1150
diff changeset
 16872
    "Modified: / 22-11-2011 / 14:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16873
!
vranyj1
parents: 1150
diff changeset
 16874
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16875
_sun_misc_Unsafe_getFloatVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16876
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16877
    <javanative: 'sun/misc/Unsafe' name: 'getFloatVolatile(Ljava/lang/Object;J)F'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16878
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16879
    | o offset |
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16880
    o := nativeContext argAt: 1.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16881
    offset := nativeContext argAt: 2.
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16882
    ^o instVarAt: offset
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16883
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 16884
    "Modified: / 10-05-2012 / 17:01:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16885
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16886
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16887
_sun_misc_Unsafe_getInt: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16888
1023
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16889
    <javanative: 'sun/misc/Unsafe' name: 'getInt'>
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16890
    "
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
    * Fetches a integer value from a given Java variable.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16893
    */
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16894
    public native int getInt(Object o, long offset);
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16895
    "
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16896
    | o offset |
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16897
    o := nativeContext argAt: 1.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16898
    offset := nativeContext argAt: 2.
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16899
    ^o instVarAt: offset
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16900
6eea44b0da09 JavaVM: Few fixes in native methods
vranyj1
parents: 1022
diff changeset
 16901
    "Modified: / 18-10-2011 / 20:33:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16902
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 16903
1433
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16904
_sun_misc_Unsafe_getIntVolatile: nativeContext
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16905
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16906
    <javanative: 'sun/misc/Unsafe' name: 'getIntVolatile(Ljava/lang/Object;J)I'>
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16907
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16908
    | o offset |
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16909
    o := nativeContext argAt: 1.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16910
    offset := nativeContext argAt: 2.
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16911
    ^o instVarAt: offset
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16912
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16913
    "Modified: / 28-03-2012 / 15:03:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16914
!
cc7b8e8cd814 Fixes for Mauve tests
vranyj1
parents: 1428
diff changeset
 16915
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16916
_sun_misc_Unsafe_getLong: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16917
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16918
    <javanative: 'sun/misc/Unsafe' name: 'getLong(Ljava/lang/Object;J)J'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16919
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16920
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16921
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 16922
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16923
_sun_misc_Unsafe_getLongVolatile: nativeContext
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16924
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16925
    <javanative: 'sun/misc/Unsafe' name: 'getLongVolatile(Ljava/lang/Object;J)J'>
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16926
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16927
    | o offset |
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16928
    o := nativeContext argAt: 1.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16929
    offset := nativeContext argAt: 2.
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16930
    ^o instVarAt: offset
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16931
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16932
    "Modified: / 31-08-2011 / 23:57:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16933
!
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 16934
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16935
_sun_misc_Unsafe_getObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16936
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16937
    <javanative: 'sun/misc/Unsafe' name: 'getObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16938
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16939
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16940
    * Fetches a reference value from a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16941
    * @see #getInt(Object, long)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16942
    */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16943
    public native Object getObject(Object o, long offset);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16944
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16945
    | o offset |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16946
    o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16947
    offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16948
    ^o instVarAt: offset
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16949
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16950
    "Modified: / 10-08-2011 / 01:40:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16951
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 16952
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16953
_sun_misc_Unsafe_getObjectVolatile: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16954
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16955
    <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
 16956
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16957
    /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16958
    * Fetches a reference value from a given Java variable, with volatile
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16959
    * load semantics. Otherwise identical to {@link #getObject(Object, long)}
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16960
    */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16961
    public native Object getObjectVolatile(Object o, long offset);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16962
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16963
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16964
    | o offset |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16965
    o := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16966
    offset := nativeContext argAt: 2.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16967
    ^o instVarAt: offset
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16968
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16969
    "Modified (comment): / 17-08-2011 / 09:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16970
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 16971
1151
vranyj1
parents: 1150
diff changeset
 16972
_sun_misc_Unsafe_getShort: nativeContext
vranyj1
parents: 1150
diff changeset
 16973
vranyj1
parents: 1150
diff changeset
 16974
    <javanative: 'sun/misc/Unsafe' name: 'getShort(Ljava/lang/Object;J)S'>
vranyj1
parents: 1150
diff changeset
 16975
vranyj1
parents: 1150
diff changeset
 16976
    | o offset |
vranyj1
parents: 1150
diff changeset
 16977
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 16978
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 16979
    ^o instVarAt: offset
vranyj1
parents: 1150
diff changeset
 16980
vranyj1
parents: 1150
diff changeset
 16981
    "Modified: / 22-11-2011 / 14:52:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 16982
!
vranyj1
parents: 1150
diff changeset
 16983
1504
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16984
_sun_misc_Unsafe_getShortVolatile: nativeContext
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16985
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16986
    <javanative: 'sun/misc/Unsafe' name: 'getShortVolatile(Ljava/lang/Object;J)S'>
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16987
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16988
    | o offset |
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16989
    o := nativeContext argAt: 1.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16990
    offset := nativeContext argAt: 2.
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16991
    ^o instVarAt: offset
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16992
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16993
    "Modified: / 29-06-2012 / 19:05:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16994
!
26d35dc9ded2 - JavaVM
vranyj1
parents: 1499
diff changeset
 16995
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16996
_sun_misc_Unsafe_objectFieldOffset: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16997
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16998
    <javanative: 'sun/misc/Unsafe' name: 'objectFieldOffset'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 16999
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17000
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17001
    | javaFieldObject |
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17002
    javaFieldObject := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17003
    ^javaFieldObject instVarNamed: #slot
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17004
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17005
    "Created: / 22-11-2010 / 17:58:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17006
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17007
826
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17008
_sun_misc_Unsafe_pageSize: nativeContext
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17009
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17010
    <javanative: 'sun/misc/Unsafe' name: 'pageSize'>
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17011
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17012
    ^ 4096"4K is the page size on x86, I think... "
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17013
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17014
    "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
 17015
!
db53b9c842d7 - TestletTestCaseProxy: debugging support improved.
vranyj1
parents: 824
diff changeset
 17016
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17017
_sun_misc_Unsafe_park: nativeContext
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17018
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17019
    <javanative: 'sun/misc/Unsafe' name: 'park(ZJ)V'>
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17020
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17021
    /**
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17022
     * Block current thread, returning when a balancing
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17023
     * <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
 17024
     * 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
 17025
     * 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
 17026
     * 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
 17027
     * 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
 17028
     * '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
 17029
     * 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
 17030
     * elsewhere.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17031
     */
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17032
    "
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17033
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17034
    | absolute millis tout process |
1138
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17035
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17036
    absolute := nativeContext argAt: 1.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17037
    millis := nativeContext argAt: 2.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17038
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17039
    millis ~~ 0 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17040
        absolute == 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17041
            tout := millis - OperatingSystem getOSTime.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17042
            tout < 1 ifTrue:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17043
                tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17044
            ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17045
        ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17046
            tout := millis.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17047
        ]
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17048
    ] ifFalse:[
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17049
        tout := nil.
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17050
    ].
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17051
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17052
    process := Processor activeProcess.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17053
    self park: process timeout: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17054
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17055
    "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
 17056
!
1159f37c14f0 JavaVM: Unitial attempt to implement (funny) Unsafe.park native method
vranyj1
parents: 1137
diff changeset
 17057
1053
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17058
_sun_misc_Unsafe_putBoolean: nativeContext
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17059
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17060
    <javanative: 'sun/misc/Unsafe' name: 'putBoolean(Ljava/lang/Object;JZ)V'>
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17061
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17062
    "Like putInt:, see _sun_misc_Unsafe_putInt:"
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17063
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17064
    | o offset x |
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17065
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17066
    o := nativeContext argAt: 1.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17067
    offset := nativeContext argAt: 2.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17068
    x := nativeContext argAt: 4.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17069
    ^o instVarAt: offset put: x.
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17070
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17071
    "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
 17072
!
8ea28b9a7cb0 Few fixes for class loaders
vranyj1
parents: 1042
diff changeset
 17073
1151
vranyj1
parents: 1150
diff changeset
 17074
_sun_misc_Unsafe_putByte: nativeContext
vranyj1
parents: 1150
diff changeset
 17075
vranyj1
parents: 1150
diff changeset
 17076
    <javanative: 'sun/misc/Unsafe' name: 'putByte(Ljava/lang/Object;JB)V'>
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17077
    <javanative: 'sun/misc/Unsafe' name: 'putByte(JB)V'>
1151
vranyj1
parents: 1150
diff changeset
 17078
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17079
    nativeContext selector == #'putByte(JB)V' ifTrue:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17080
        | address value |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17081
        address := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17082
        value := nativeContext argAt: 3.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17083
        SimulatedNativeMemory byteAt: address put: (value bitAnd: 16rFF).
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17084
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17085
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17086
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17087
    nativeContext selector = #'putByte(Ljava/lang/Object;JB)V' ifTrue:[
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17088
        | o offset x |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17089
        o := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17090
        offset := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17091
        x := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17092
        ^o instVarAt: offset put: x.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17093
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17094
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17095
    self shouldNotImplement
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17096
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17097
    "Modified: / 31-07-2012 / 11:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17098
!
vranyj1
parents: 1150
diff changeset
 17099
vranyj1
parents: 1150
diff changeset
 17100
_sun_misc_Unsafe_putChar: nativeContext
vranyj1
parents: 1150
diff changeset
 17101
vranyj1
parents: 1150
diff changeset
 17102
    <javanative: 'sun/misc/Unsafe' name: 'putChar(Ljava/lang/Object;JC)V'>
vranyj1
parents: 1150
diff changeset
 17103
vranyj1
parents: 1150
diff changeset
 17104
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17105
vranyj1
parents: 1150
diff changeset
 17106
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17107
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17108
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17109
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17110
vranyj1
parents: 1150
diff changeset
 17111
    "Modified: / 22-11-2011 / 14:52:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17112
!
vranyj1
parents: 1150
diff changeset
 17113
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17114
_sun_misc_Unsafe_putDouble: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17115
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17116
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17117
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JD)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17118
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17119
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17120
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17121
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17122
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17123
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17124
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17125
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17126
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17127
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17128
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17129
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17130
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17131
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17132
        x := nativeContext argAt: 3.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17133
        SimulatedNativeMemory doubleAt: o put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17134
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17135
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17136
    self internalError:'Unknown variant of putDouble() native!!'
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17137
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17138
    "Modified: / 30-08-2011 / 15:58:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17139
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17140
1151
vranyj1
parents: 1150
diff changeset
 17141
_sun_misc_Unsafe_putFloat: nativeContext
vranyj1
parents: 1150
diff changeset
 17142
vranyj1
parents: 1150
diff changeset
 17143
    <javanative: 'sun/misc/Unsafe' name: 'putFloat(Ljava/lang/Object;JF)V'>
vranyj1
parents: 1150
diff changeset
 17144
vranyj1
parents: 1150
diff changeset
 17145
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17146
vranyj1
parents: 1150
diff changeset
 17147
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17148
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17149
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17150
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17151
vranyj1
parents: 1150
diff changeset
 17152
    "Modified: / 22-11-2011 / 14:53:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17153
!
vranyj1
parents: 1150
diff changeset
 17154
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17155
_sun_misc_Unsafe_putInt: nativeContext
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17156
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17157
    <javanative: 'sun/misc/Unsafe' name: 'putInt'>
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17158
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17159
    /**
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17160
     * Stores a value into a given Java variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17161
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17162
     * The first two parameters are interpreted exactly as with
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17163
     * {@link #getInt(Object, long)} to refer to a specific
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17164
     * Java variable (field or array element).  The given value
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17165
     * is stored into that variable.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17166
     * <p>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17167
     * The variable must be of the same type as the method
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17168
     * parameter <code>x</code>.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17169
     *
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17170
     * @param o Java heap object in which the variable resides, if any, else
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17171
     *        null
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17172
     * @param offset indication of where the variable resides in a Java heap
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17173
     *        object, if any, else a memory address locating the variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17174
     *        statically
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17175
     * @param x the value to store into the indicated Java variable
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17176
     * @throws RuntimeException No defined exceptions are thrown, not even
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17177
     *         {@link NullPointerException}
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17178
     */
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17179
    public native void putInt(Object o, long offset, int x);
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17180
    "
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17181
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17182
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17183
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17184
    o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17185
    offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17186
    x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17187
    ^o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17188
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17189
    "Modified: / 30-08-2011 / 15:48:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17190
!
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17191
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17192
_sun_misc_Unsafe_putLong: nativeContext
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17193
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17194
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(Ljava/lang/Object;JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17195
    <javanative: 'sun/misc/Unsafe' name: 'putDouble(JJ)V'>
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17196
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17197
    | o offset x |
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17198
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17199
    nativeContext numArgs == 5 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17200
        "putDouble(Ljava/lang/Object;JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17201
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17202
        offset := nativeContext argAt: 2.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17203
        x := nativeContext argAt: 4.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17204
        o instVarAt: offset put: x.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17205
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17206
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17207
    nativeContext numArgs == 4 ifTrue:[
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17208
        "putDouble(JD)V"
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17209
        o := nativeContext argAt: 1.
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17210
        x := nativeContext argAt: 3.
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17211
        SimulatedNativeMemory sint64At: o put: x.
948
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17212
        ^nil
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17213
    ].
82d50d26621c Fixes for Mauve
vranyj1
parents: 945
diff changeset
 17214
    self internalError:'Unknown variant of putLong() native!!'
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17215
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17216
    "Created: / 07-12-2010 / 23:50:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1525
4463b11f29f4 - JavaNativeMemory
vranyj1
parents: 1524
diff changeset
 17217
    "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
 17218
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17219
900
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17220
_sun_misc_Unsafe_putObject: nativeContext
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17221
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17222
    <javanative: 'sun/misc/Unsafe' name: 'putObject'>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17223
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17224
    "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17225
    /**
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17226
     * Stores a reference value into a given Java variable.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17227
     * <p>
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17228
     * Unless the reference <code>x</code> being stored is either null
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17229
     * or matches the field type, the results are undefined.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17230
     * If the reference <code>o</code> is non-null, car marks or
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17231
     * other store barriers for that object (if the VM requires them)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17232
     * are updated.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17233
     * @see #putInt(Object, int, int)
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17234
     */
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17235
     public native void putObject(Object o, long offset, Object x);
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17236
     "
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17237
     | o offset x |
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17238
     o := nativeContext argAt: 1.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17239
     offset := nativeContext argAt: 2.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17240
     x := nativeContext argAt: 4.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17241
     ^o instVarAt: offset put: x.
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17242
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17243
    "Modified: / 10-08-2011 / 01:40:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17244
!
af7f94374272 - more native methods
vranyj1
parents: 899
diff changeset
 17245
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17246
_sun_misc_Unsafe_putObjectVolatile: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17247
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17248
    <javanative: 'sun/misc/Unsafe' name: 'putObjectVolatile(Ljava/lang/Object;JLjava/lang/Object;)V'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17249
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17250
    | o offset x |
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17251
    o := nativeContext argAt: 1.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17252
    offset := nativeContext argAt: 2.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17253
    x := nativeContext argAt: 4.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17254
    ^o instVarAt: offset put: x.
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17255
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 17256
    "Modified: / 04-12-2011 / 20:27:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17257
!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17258
1151
vranyj1
parents: 1150
diff changeset
 17259
_sun_misc_Unsafe_putShort: nativeContext
vranyj1
parents: 1150
diff changeset
 17260
vranyj1
parents: 1150
diff changeset
 17261
    <javanative: 'sun/misc/Unsafe' name: 'putShort(Ljava/lang/Object;JS)V'>
vranyj1
parents: 1150
diff changeset
 17262
vranyj1
parents: 1150
diff changeset
 17263
    | o offset x |
vranyj1
parents: 1150
diff changeset
 17264
vranyj1
parents: 1150
diff changeset
 17265
    o := nativeContext argAt: 1.
vranyj1
parents: 1150
diff changeset
 17266
    offset := nativeContext argAt: 2.
vranyj1
parents: 1150
diff changeset
 17267
    x := nativeContext argAt: 4.
vranyj1
parents: 1150
diff changeset
 17268
    ^o instVarAt: offset put: x.
vranyj1
parents: 1150
diff changeset
 17269
vranyj1
parents: 1150
diff changeset
 17270
    "Modified: / 22-11-2011 / 14:52:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
vranyj1
parents: 1150
diff changeset
 17271
!
vranyj1
parents: 1150
diff changeset
 17272
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17273
_sun_misc_Unsafe_registerNatives: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17274
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17275
    <javanative: 'sun/misc/Unsafe' name: 'registerNatives'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17276
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17277
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17278
     "Nothing to do, native method are bound lazily"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17279
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17280
    "Created: / 25-10-2010 / 16:14:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17281
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17282
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17283
_sun_misc_Unsafe_setMemory: nativeContext
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17284
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17285
    <javanative: 'sun/misc/Unsafe' name: 'setMemory(JJB)V'>
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17286
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17287
    | address bytes value|
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17288
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17289
    address := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17290
    bytes := nativeContext argAt: 3.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17291
    value := nativeContext argAt: 5.
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17292
    SimulatedNativeMemory memset: address value: value length: bytes.
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17293
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17294
    "Modified (format): / 11-07-2012 / 10:29:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17295
!
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17296
918
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17297
_sun_misc_Unsafe_staticFieldBase: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17298
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17299
    <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
 17300
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17301
      /**
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17302
      * 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
 17303
      * #staticFieldOffset}.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17304
      * <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
 17305
      * given class can be accessed via methods like {@link #getInt(Object,
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17306
      * 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
 17307
      * 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
 17308
      * 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
 17309
      * this class.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17310
      */
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17311
      public native Object staticFieldBase(Field f);
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17312
    "
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17313
     | javaFieldObject javaClassObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17314
     javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17315
     javaClassObject := javaFieldObject instVarNamed: #clazz.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17316
     ^self classForJavaClassObject: javaClassObject.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17317
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17318
    "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
 17319
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17320
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17321
_sun_misc_Unsafe_staticFieldOffset: nativeContext
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17322
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17323
    <javanative: 'sun/misc/Unsafe' name: 'staticFieldOffset(Ljava/lang/reflect/Field;)J'>
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17324
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17325
    | javaFieldObject |
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17326
    javaFieldObject := nativeContext argAt: 1.
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17327
    ^javaFieldObject instVarNamed: #slot
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17328
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17329
    "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
 17330
!
73bd57f8d3b0 - fixes in natives (reflective support for fields)
vranyj1
parents: 915
diff changeset
 17331
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17332
_sun_misc_Unsafe_unpark: nativeContext
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17333
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17334
    <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
 17335
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17336
    /**
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17337
     * 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
 17338
     * 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
 17339
     * block.  Note: this operation is 'unsafe' solely because the
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17340
     * caller must somehow ensure that the thread has not been
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17341
     * destroyed. Nothing special is usually required to ensure this
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17342
     * 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
 17343
     * reference to the thread) but this is not nearly-automatically
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17344
     * so when calling from native code.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17345
     * @param thread the thread to unpark.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17346
     *
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17347
     */
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17348
    public native void unpark(Object thread);
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17349
    "
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17350
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17351
    | thread process |
1614
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17352
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17353
    thread := nativeContext argAt: 1.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17354
    process := Java threads at: thread ifAbsent:[
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17355
        self error: 'No process for given thread'.
f7d4888fb1a2 - JavaClassReader: added check for VM stack-depth limit
vranyj1
parents: 1612
diff changeset
 17356
    ].
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17357
    self unpark: process.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17358
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17359
    "Modified: / 16-08-2012 / 21:52:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1499
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17360
!
2d4849f5ade0 - extensions
vranyj1
parents: 1497
diff changeset
 17361
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17362
_sun_misc_VM_initialize: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17363
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17364
    <javanative: 'sun/misc/VM' name: 'initialize'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17365
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17366
    
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17367
    "Nothing to do"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17368
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17369
    "Created: / 26-11-2010 / 18:43:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17370
! !
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17371
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17372
!JavaVM class methodsFor:'native - sun.nio.ch'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17373
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17374
_sun_nio_ch_FileChannelImpl_initIDs: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17375
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17376
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'initIDs()J'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17377
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17378
    ^ 4096 "/page size, see
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17379
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17380
    "Modified: / 10-07-2012 / 01:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17381
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17382
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17383
_sun_nio_ch_FileChannelImpl_map0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17384
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17385
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'map0(IJJ)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17386
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17387
    ^ UnimplementedNativeMethodSignal raise
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17388
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17389
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17390
_sun_nio_ch_FileChannelImpl_position0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17391
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17392
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'position0(Ljava/io/FileDescriptor;J)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17393
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17394
    | fd position stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17395
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17396
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17397
    position := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17398
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17399
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17400
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17401
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17402
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17403
    ^position = -1 
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17404
        ifTrue:[stream position0Based]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17405
        ifFalse:[stream position0Based: position. 0].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17406
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17407
    "Modified: / 10-07-2012 / 01:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17408
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17409
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17410
_sun_nio_ch_FileChannelImpl_size0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17411
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17412
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'size0(Ljava/io/FileDescriptor;)J'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17413
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17414
    | fd stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17415
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17416
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17417
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17418
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17419
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17420
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17421
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17422
    ^stream fileSize max: stream position0Based.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17423
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17424
    "Modified: / 10-07-2012 / 01:28:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17425
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17426
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17427
_sun_nio_ch_FileChannelImpl_truncate0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17428
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17429
    <javanative: 'sun/nio/ch/FileChannelImpl' name: 'truncate0(Ljava/io/FileDescriptor;J)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17430
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17431
    | fd size stream |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17432
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17433
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17434
    size := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17435
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17436
    stream isFileStream ifFalse:[
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17437
        self throwIOExceptionWithMessage: 'Not a file stream'.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17438
        ^nil.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17439
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17440
    stream truncateTo: size.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17441
    ^0.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17442
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17443
    "Modified: / 10-07-2012 / 01:02:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17444
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17445
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17446
_sun_nio_ch_FileDispatcher_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17447
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17448
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17449
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17450
    ^ JavaNioSupport _sun_nio_ch_FileDispatcher_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17451
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17452
    "Modified: / 06-07-2012 / 22:35:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17453
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17454
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17455
_sun_nio_ch_FileDispatcher_preClose0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17456
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17457
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'preClose0(Ljava/io/FileDescriptor;)V'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17458
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17459
    "Nothing to do here"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17460
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17461
    "Modified: / 10-07-2012 / 00:47:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17462
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17463
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17464
_sun_nio_ch_FileDispatcher_read0: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17465
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17466
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'read0(Ljava/io/FileDescriptor;JI)I'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17467
1520
94915020b92b Native memory refactored to support NIO
vranyj1
parents: 1518
diff changeset
 17468
    | fd address len stream read |
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17469
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17470
    fd := nativeContext argAt: 1.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17471
    address := nativeContext argAt: 2.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17472
    len := nativeContext argAt: 4.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17473
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17474
    stream := self validateFileDescriptor: fd.
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17475
    stream atEnd ifTrue:[ ^ -1 ].
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17476
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17477
        self shouldImplement
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17478
        "/WAS: read := stream nextBytes:len into:SimulatedNativeMemory memory startingAt: address
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17479
    ] on: Error do:[:ex|
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17480
        self throwIOExceptionWithMessage: ex description.
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17481
        ^0
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17482
    ].
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17483
    ^read
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17484
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17485
    "Modified (comment): / 11-07-2012 / 10:38:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17486
!
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17487
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17488
_sun_nio_ch_FileDispatcher_write0: nativeContext
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17489
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17490
    <javanative: 'sun/nio/ch/FileDispatcher' name: 'write0(Ljava/io/FileDescriptor;JI)I'>
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17491
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17492
    | fd address len stream writtem |
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17493
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17494
    fd := nativeContext argAt: 1.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17495
    address := nativeContext argAt: 2.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17496
    len := nativeContext argAt: 4.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17497
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17498
    stream := self validateFileDescriptor: fd.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17499
    [
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17500
        self shouldImplement.  
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17501
        "/WAS: writtem := stream nextPutBytes:len from:SimulatedNativeMemory memory startingAt: address
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17502
    ] on: Error do:[:ex|
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17503
        self throwIOExceptionWithMessage: ex description.
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17504
        ^0
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17505
    ].
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17506
    ^writtem
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17507
1524
b74a62ba8cc1 JavaNativeMemory refactored
vranyj1
parents: 1522
diff changeset
 17508
    "Modified: / 11-07-2012 / 10:38:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17509
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17510
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17511
_sun_nio_ch_IOUtil_initIDs: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17512
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17513
    <javanative: 'sun/nio/ch/IOUtil' name: 'initIDs()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17514
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17515
    "Nothing to do here"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17517
    "Modified: / 06-07-2012 / 22:10:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17518
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17519
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17520
_sun_nio_ch_IOUtil_initPipe: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17521
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17522
    <javanative: 'sun/nio/ch/IOUtil' name: 'initPipe([IZ)V'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17523
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17524
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17525
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17526
1516
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17527
_sun_nio_ch_NativeThread_current: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17528
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17529
    <javanative: 'sun/nio/ch/NativeThread' name: 'current()J'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17530
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17531
    ^ JavaNioSupport _sun_nio_ch_NativeThread_current
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17532
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17533
    "Modified: / 06-07-2012 / 22:39:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17534
!
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17535
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17536
_sun_nio_ch_NativeThread_init: nativeContext
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17537
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17538
    <javanative: 'sun/nio/ch/NativeThread' name: 'init()V'>
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17539
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17540
    ^ JavaNioSupport _sun_nio_ch_NativeThread_init
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17541
f9d1fe69852a - JavaVM
vranyj1
parents: 1514
diff changeset
 17542
    "Modified: / 06-07-2012 / 22:38:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17543
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17544
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17545
_sun_nio_ch_Net_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17546
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17547
    <javanative: 'sun/nio/ch/Net' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17548
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17549
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17550
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17551
    "Modified: / 10-05-2012 / 17:00:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17552
!
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17553
1605
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17554
_sun_nio_ch_Net_socket0: nativeContext
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17555
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17556
    <javanative: 'sun/nio/ch/Net' name: 'socket0(ZZ)I'>
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17557
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17558
    ^ UnimplementedNativeMethodSignal raise
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17559
!
df3885f6011d - JavaClassReader: fixed cache sizes
vranyj1
parents: 1599
diff changeset
 17560
1491
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17561
_sun_nio_ch_ServerSocketChannelImpl_initIDs: nativeContext
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17562
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17563
    <javanative: 'sun/nio/ch/ServerSocketChannelImpl' name: 'initIDs()V'>
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17564
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17565
    "Nothing to do here"
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17566
f06ebc2c7d55 - JavaVM
vranyj1
parents: 1486
diff changeset
 17567
    "Modified: / 10-05-2012 / 16:58:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17568
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17569
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17570
!JavaVM class methodsFor:'native - sun.reflect'!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17571
873
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17572
_sun_reflect_ConstantPool_getDoubleAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17573
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17574
    <javanative: 'sun/reflect/ConstantPool' name: 'getDoubleAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17575
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17576
        | cpool  index  double |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17577
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17578
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17579
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17580
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17581
    double := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17582
    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
 17583
    ^ double
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17584
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17585
    "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
 17586
    "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
 17587
    "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
 17588
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17589
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17590
_sun_reflect_ConstantPool_getIntAt0: nativeContext
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17591
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17592
    <javanative: 'sun/reflect/ConstantPool' name: 'getIntAt0'>
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17593
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17594
        | cpool  index  int |
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17595
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17596
    cpool := self reflection constantPoolFor:(nativeContext receiver).
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17597
    index := nativeContext at:3.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17598
     "TODO: why 3?"
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17599
    int := cpool at:index.
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17600
    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
 17601
    ^ int
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17602
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17603
    "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
 17604
    "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
 17605
!
933263bd2d27 Fixes for primitive array types (uses Signed* variant of an array)
vranyj1
parents: 866
diff changeset
 17606
859
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17607
_sun_reflect_ConstantPool_getLongAt0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17608
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17609
    <javanative: 'sun/reflect/ConstantPool' name: 'getLongAt0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17610
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17611
        | cpool  index  long |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17612
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17613
    cpool := self reflection constantPoolFor:(nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17614
    index := nativeContext at:3.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17615
     "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17616
    long := cpool at:index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17617
    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
 17618
    ^ long
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17619
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17620
    "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
 17621
    "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
 17622
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17623
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17624
_sun_reflect_ConstantPool_getUTF8At0: nativeContext
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17625
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17626
    <javanative: 'sun/reflect/ConstantPool' name: 'getUTF8At0'>
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17627
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17628
    
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17629
    | cpool index string |
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17630
    cpool := self reflection constantPoolFor: (nativeContext receiver).
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17631
    index := nativeContext at: 3. 
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17632
    "TODO: why 3?"
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17633
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17634
    string := cpool at: index.
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17635
    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
 17636
    ^Java as_String: string
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17637
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17638
    "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
 17639
!
56bc5e063b7d Common code from JUnitTestCaseProxy and TestletTestCaseProxy moved to a common superclass
vranyj1
parents: 851
diff changeset
 17640
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17641
_sun_reflect_NativeConstructorAccessorImpl_newInstance0: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17642
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17643
    <javanative: 'sun/reflect/NativeConstructorAccessorImpl' name: 'newInstance0'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17644
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17645
    
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17646
    | ctor args method instance class |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17647
    ctor := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17648
    args := aJavaContext argAt: 2.
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17649
    class := self reflection classForJavaConstructorObject: ctor.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17650
    method := self reflection methodForJavaConstructorObject: ctor.
1159
afe8ab363ca3 Mainly fixes:
vranyj1
parents: 1155
diff changeset
 17651
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 17652
    instance := class new.
1517
6d1eb52c727e Fixes in reflection
vranyj1
parents: 1516
diff changeset
 17653
    self invoke: ctor receiver: instance arguments: args context: aJavaContext constructor: true.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17654
    ^instance
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17655
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17656
    "Created: / 26-11-2010 / 11:41:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17657
    "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
 17658
    "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
 17659
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17660
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17661
_sun_reflect_NativeMethodAccessorImpl_invoke0: nativeContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17662
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17663
    <javanative: 'sun/reflect/NativeMethodAccessorImpl' name: 'invoke0'>
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17664
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17665
    private static native Object invoke0(Method m, Object obj, Object[] args);
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17666
    "
1202
7d9f24940ed5 - JavaVM: fix in method/ctor invocation using reflection
vranyj1
parents: 1201
diff changeset
 17667
    | m obj args method |
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17668
    m := nativeContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17669
    obj := nativeContext argAt: 2.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17670
    args := nativeContext argAt: 3.
880
a9171dcee2b0 Fix in sun.reflect.NativeMethodAccessorImpl.invoke0(): unboxes
vranyj1
parents: 877
diff changeset
 17671
    method := self reflection methodForJavaMethodObject: m.
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17672
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17673
    ^ self invoke: m receiver: obj arguments: args context: nativeContext constructor: false.
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17674
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17675
    "Created: / 06-02-2011 / 00:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17676
    "Modified: / 28-02-2011 / 16:57:31 / Marcel Hlopko <hlopik@gmail.com>"
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 17677
    "Modified: / 19-08-2011 / 15:06:00 / cg"
1512
96a1223f511c - fixes in reflection (method invocation)
vranyj1
parents: 1511
diff changeset
 17678
    "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
 17679
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17680
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17681
_sun_reflect_Reflection_getCallerClass: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17682
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17683
    <javanative: 'sun/reflect/Reflection' name: 'getCallerClass'>
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17684
    "
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17685
    /** Returns the class of the method <code>realFramesToSkip</code>
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17686
        frames up the stack (zero-based), ignoring frames associated
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17687
        with java.lang.reflect.Method.invoke() and its implementation.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17688
        The first frame is that associated with this method, so
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17689
        <code>getCallerClass(0)</code> returns the Class object for
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17690
        sun.reflect.Reflection. Frames associated with
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17691
        java.lang.reflect.Method.invoke() and its implementation are
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17692
        completely ignored and do not count toward the number of 'real'
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17693
        frames skipped. */
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17694
    "
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17695
    
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17696
    | framesToSkip framesSkipped frame cls |
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17697
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17698
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17699
    framesToSkip := aJavaContext argAt: 1.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17700
    framesSkipped := 0.
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17701
    frame := aJavaContext.
1505
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17702
    [ framesSkipped == framesToSkip ] whileFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17703
        frame := frame sender.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17704
        "Frames for java,lang.reflect.Method.invoke() does not count, sigh.
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17705
         What a crappy implementation"
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17706
        (frame selector == #'invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;' 
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17707
            and:[ frame receiver class name = #'java/lang/reflect/Method']) ifFalse:[
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17708
                framesSkipped := framesSkipped + 1
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17709
            ]
25a5199822a9 - JavaVM
vranyj1
parents: 1504
diff changeset
 17710
    ].
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17711
1579
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17712
    "Returns the __class of the method__, not !!!!!! the class of method's receiver !!!!!!"
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17713
    "                  |                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17714
    "                  V                                                            "
7c4ec8d48c84 - JavaMethod
vranyj1
parents: 1576
diff changeset
 17715
    cls := frame method mclass theNonMetaclass.
1522
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17716
    ^cls isJavaClass 
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17717
        ifTrue:[JavaVM javaClassObjectForClass:cls]
c02670f2ec47 - JavaVM
vranyj1
parents: 1520
diff changeset
 17718
        ifFalse:[nil]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17719
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17720
    "Created: / 25-10-2010 / 16:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17721
!
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17722
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17723
_sun_reflect_Reflection_getClassAccessFlags: aJavaContext
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17724
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17725
    <javanative: 'sun/reflect/Reflection' name: 'getClassAccessFlags'>
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17726
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17727
        |class|
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17728
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17729
    class := self reflection classForJavaClassObject:(aJavaContext argAt:1).
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17730
    ^(class isJavaPrimitiveType or:[class isJavaArrayClass]) ifTrue:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17731
        1041"FIXME: make it symbolic"
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17732
    ] ifFalse:[
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17733
        class accessFlags
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17734
    ]
761
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17735
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17736
    "Created: / 26-11-2010 / 10:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
43e017ec7958 Merged with /branches/jk
vranyj1
parents: 760
diff changeset
 17737
    "Modified: / 28-01-2011 / 15:19:28 / Marcel Hlopko <hlopik@gmail.com>"
960
1c7fd32d1f26 Few fixes
vranyj1
parents: 959
diff changeset
 17738
    "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
 17739
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17740
995
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17741
!JavaVM class methodsFor:'native - sun.security.provider'!
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17742
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17743
_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed: nativeContext
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17744
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17745
    <javanative: 'sun/security/provider/NativeSeedGenerator' name: 'nativeGenerateSeed([B)Z'>
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17746
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17747
    ^ UnimplementedNativeMethodSignal raise
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17748
! !
4984e6d0d0ce Fixes for Win32
vranyj1
parents: 992
diff changeset
 17749
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17750
!JavaVM class methodsFor:'queries'!
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17751
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17752
booted
1209
vranyj1
parents: 1205
diff changeset
 17753
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17754
    | jVM |
1209
vranyj1
parents: 1205
diff changeset
 17755
vranyj1
parents: 1205
diff changeset
 17756
    "/Slightly faster variant of the code below
vranyj1
parents: 1205
diff changeset
 17757
    ^SystemClassLoader notNil and:[
vranyj1
parents: 1205
diff changeset
 17758
        jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 17759
        jVM notNil and: [ (jVM instVarNamed: #booted) == 1 ]
vranyj1
parents: 1205
diff changeset
 17760
    ].
vranyj1
parents: 1205
diff changeset
 17761
vranyj1
parents: 1205
diff changeset
 17762
"/    jVM := JavaVM classNamed: 'sun.misc.VM'.
vranyj1
parents: 1205
diff changeset
 17763
"/    ^ 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
 17764
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17765
    "
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17766
     JavaVM booted"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17767
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17768
    "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
 17769
    "Modified: / 02-11-2011 / 22:08:53 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1209
vranyj1
parents: 1205
diff changeset
 17770
    "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
 17771
! !
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 17772
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17773
!JavaVM class methodsFor:'threads'!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17774
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17775
clearInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17776
    ThreadInterrupts removeKey: process ifAbsent: []
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17777
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17778
    "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
 17779
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17780
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17781
isInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17782
    ^ThreadInterrupts at: process ifAbsent:[false].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17783
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17784
    "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
 17785
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17786
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17787
park: process timeout: tout
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17788
    "A helper for sun.misc.Unsafe.park()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17789
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17790
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17791
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17792
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17793
    ParkUnparkSemaphores isNil ifTrue:[
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17794
        ParkUnparkSemaphores := Dictionary new.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17795
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17796
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17797
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17798
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17799
    Logger log: 'parking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17800
    sema parkWithTimeoutMs: tout.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17801
    Logger log: 'parked thread ', process printString , ' resumed' severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17802
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17803
    "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
 17804
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17805
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17806
setInterrupted: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17807
    ThreadInterrupts at: process put: true
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17808
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17809
    "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
 17810
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17811
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17812
terminateAllThreads
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17813
    Java terminateAllThreads.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17814
    JavaEventThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17815
    JavaScreenUpdaterThread := JavaEventQueueThread := nil.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17816
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17817
    "Created: / 8.1.1998 / 17:43:54 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17818
    "Modified: / 24.12.1999 / 02:33:16 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17819
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17820
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17821
threadStart: nativeContext 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17822
    "start the thread"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17823
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17824
    | jThread  jName  nm  stProcess  helper |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17825
    jThread := nativeContext receiver.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17826
    self assert: (jThread instVarNamed: 'priority') > 0.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17827
    stProcess := JavaProcess for: (helper := JavaProcess newHelper)
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17828
                priority: (Processor activePriority).
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17829
    helper javaThreadObject: jThread.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17830
    helper javaProcess: stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17831
    jName := jThread instVarNamed: 'name'.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17832
    jName isString ifFalse: [ nm := Java as_ST_String: jName. ] ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17833
        nm := jName
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17834
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17835
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17836
    "/ kludge - remember the ScreenUpdater ...
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17837
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17838
    nm = 'Screen Updater' ifTrue: [ JavaScreenUpdaterThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17839
        nm = 'AWT-Windows' ifTrue: [ JavaEventThread := stProcess. ] ifFalse: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17840
            (nm startsWith: 'AWT-EventQueue') ifTrue: [
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17841
                JavaEventQueueThread := stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17842
            ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17843
        ]
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17844
    ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17845
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17846
    "/ when that process terminates, wakup any waiters
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17847
    "/mh 29.11.11 this makes join work
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17848
    "/mh 30.11.11 disable wait is to ensure that join can be called on thread after its finished and dont wait forever"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17849
    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17850
    stProcess 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17851
        addExitAction: [
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17852
            Logger 
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17853
                log: ('%1 is going to die, notifying all waiters and disabling waiting on its monitor' 
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17854
                        bindWith: jThread printString)
1129
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17855
                severity: #debug
085eb3d2d932 logging monitor stuff only if MonitorTrace = true
hlopkmar
parents: 1128
diff changeset
 17856
                facility: #JVM.
1615
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17857
            jThread instVarNamed: 'threadStatus' put: 0.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17858
            (self monitorFor: jThread) disableWait.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17859
            self acquireMonitorAndNotifyAll: jThread.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17860
            ThreadInterrupts removeKey: stProcess ifAbsent:[]
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17861
        ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17862
    stProcess name: 'JAVA-' , nm.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17863
    stProcess restartable: true.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17864
    jThread instVarNamed: 'threadStatus' put: 1.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17865
    Java addThread: jThread for: stProcess.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17866
    stProcess resume.    
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17867
    ^ nil
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17868
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17869
    "Modified: / 24-12-1999 / 03:14:33 / cg"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17870
    "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
 17871
    "Modified: / 09-12-2011 / 12:58:31 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17872
    "Modified: / 16-08-2012 / 22:17:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17873
!
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17874
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17875
unpark: process
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17876
    "A helper for sun.misc.Unsafe.unpark()"
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17877
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17878
    | blocked sema |
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17879
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17880
    blocked := OperatingSystem blockInterrupts.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17881
    ParkUnparkSemaphores isNil ifTrue:[ParkUnparkSemaphores dictionary new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17882
    sema := ParkUnparkSemaphores at: process ifAbsentPut:[Semaphore new].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17883
    blocked ifFalse:[ OperatingSystem unblockInterrupts ].
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17884
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17885
    Logger log: 'unparking thread ', process printString severity: #debug facility: #JVM.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17886
    sema signal.
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17887
dde13d0a263e Initial support for park()/unpark()
vranyj1
parents: 1614
diff changeset
 17888
    "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
 17889
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17890
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17891
!JavaVM class methodsFor:'vm support'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17892
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17893
_ANEWARRAY2:classRef _:size 
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17894
    "vm helper method for new resolving - creates new array of class identified by classRef"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17895
    
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17896
    |javaClass|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17897
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17898
"/    size == 20 ifTrue:[self halt].
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17899
1151
vranyj1
parents: 1150
diff changeset
 17900
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17901
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17902
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17903
        ^nil
vranyj1
parents: 1150
diff changeset
 17904
    ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17905
    classRef ifNil:[ self halt:'cant create array from nil ref' ].
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17906
    javaClass := classRef resolve.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17907
    javaClass ifNil:[ self halt:'cant create array from nil javaClass' ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17908
    self assert:javaClass javaArrayClass isJavaArrayClass. 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17909
    ^ javaClass javaArrayClass new:size
801
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17910
80c511097f3c added JavaVM class>>_ANEWARRAY2:_: for new resolving
hlopkmar
parents: 772
diff changeset
 17911
    "Created: / 18-05-2011 / 21:04:59 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1268
cc67480dfa95 Fix in native Class.getConstantPool() - arrays/primitive types have null CP
vranyj1
parents: 1263
diff changeset
 17912
    "Modified: / 12-12-2011 / 11:03:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17913
!
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17914
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17915
_ANEWARRAY:classRef _:size 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17916
    |ref|
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17917
1151
vranyj1
parents: 1150
diff changeset
 17918
    size <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 17919
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 17920
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 17921
        ^nil
vranyj1
parents: 1150
diff changeset
 17922
    ].
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17923
    ref := classRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17924
    ref isUnresolved ifTrue:[ ref := ref javaClass ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17925
    self assert:ref javaArrayClass isJavaArrayClass.
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 17926
    ^ ref javaArrayClass new:size
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17927
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17928
    "Created: / 17-12-2010 / 14:28:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 17929
    "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
 17930
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17931
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17932
_ARRAYLENGTH:arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17933
    arr isNil ifTrue:[
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17934
        "/self halt:'should not happen'.
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17935
        self throwNullPointerException.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17936
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17937
    ^ arr size
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17938
824
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17939
    "Created: / 08-01-1999 / 14:38:27 / cg"
26e719a7e88c Few fixes and native methods
vranyj1
parents: 804
diff changeset
 17940
    "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
 17941
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17942
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17943
_ATHROW:aJavaException
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17944
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17945
    <resource: #skipInDebuggersWalkBack>
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17946
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17947
    aJavaException isNil ifTrue:[
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17948
        self halt:'cannot happen'
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17949
    ].
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17950
    "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
 17951
     being unwound, then all intermediate Java finally blocks are executed.
1452
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17952
     This is done by fake-throwing special FinallyToken, as there must an 
69dcb9c33742 Some more support for finally block when a Smalltalk exception is thrown - not yet working correctly
vranyj1
parents: 1433
diff changeset
 17953
     exception instance for Java. A Java compiler compiles unconditional
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17954
     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
 17955
     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
 17956
     Hence following hack: we teleport back to handler caller"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 17957
    aJavaException class == JavaContext::FinallyToken ifTrue:[
1455
0bd5fedc1d2c Temporary commit - some more finally support
vranyj1
parents: 1453
diff changeset
 17958
        aJavaException pass.
1459
9e24f4337d78 Tests for finally
vranyj1
parents: 1455
diff changeset
 17959
        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
 17960
    ].
1102
df54d5b34c6b i broke something important in last commit - quickly reverting back :)
hlopkmar
parents: 1101
diff changeset
 17961
    self throwException:aJavaException
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17962
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17963
    "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
 17964
    "Modified: / 08-11-2011 / 16:32:54 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1461
34a9c99d0295 - test cleanup
vranyj1
parents: 1459
diff changeset
 17965
    "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
 17966
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 17967
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17968
_CHECKCAST2: object _: aJavaClassRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17969
    "Trampouline for unhandled cases ..."
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17970
    
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17971
    | class |
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17972
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17973
    aJavaClassRef isJavaRef ifTrue: [ class := aJavaClassRef resolve ] ifFalse: [
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17974
        self halt: 'I expected classRefs only - maybe I was wrong'
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17975
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17976
    (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
 17977
        self breakPoint: #mh.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17978
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17979
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17980
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17981
        
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17982
    ^ true.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17983
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17984
    "Created: / 19-05-2011 / 10:12:23 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
912
e651488f5741 Many fixes in reflection, expecially for generic types support
vranyj1
parents: 911
diff changeset
 17985
    "Modified: / 13-08-2011 / 01:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17986
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 17987
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17988
_CHECKCAST: object _: classOrClassRef 
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17989
    "Trampouline for unhandled cases ..."
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17990
    
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17991
    | class |
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17992
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17993
    self breakPoint: #mh.
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 17994
    class := classOrClassRef javaClass.
1027
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17995
     "
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17996
     Java VM Spec, 3rd edition, p 280:
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17997
     
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17998
     If objectref is null, the checkcast instruction throws a ClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 17999
    " "object isNil"
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18000
    (false 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
 18001
        self throwClassCastException.
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18002
        ^ false
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18003
    ].
43dc608e14aa another dose of fixes, still not able to boot javavm
hlopkmar
parents: 1026
diff changeset
 18004
    ^ true
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18005
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18006
    "Created: / 08-01-1999 / 14:53:51 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18007
    "Modified: / 09-01-1999 / 00:45:21 / cg"
760
5f55da80009b JavaVM: few fixes in VM callbacks (getting rid of all __jresolveMethod() in jinterpret.c)
vranyj1
parents: 758
diff changeset
 18008
    "Modified: / 25-04-2011 / 20:26:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18009
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18010
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18011
_D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18012
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18013
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18014
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18015
    v > 16r7FFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18016
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18017
	v := 16r7FFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18018
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18019
	v < 16r80000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18020
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18021
	    v := 16r80000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18022
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18023
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18024
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18025
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18026
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18027
    "Created: / 8.1.1999 / 14:47:13 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18028
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18029
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18030
_D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18031
    |v|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18032
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18033
    v := op1 asInteger.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18034
    v > 16r7FFFFFFFFFFFFFFF ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18035
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18036
	v := 16r7FFFFFFFFFFFFFFF
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18037
    ] ifFalse:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18038
	v < 16r8000000000000000 negated ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18039
	    self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18040
	    v := 16r8000000000000000 negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18041
	]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18042
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18043
    ^ v
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18044
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18045
    "Modified: / 17.10.1998 / 21:55:49 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18046
    "Created: / 8.1.1999 / 14:46:44 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18047
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18048
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18049
_DADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18050
    ^ op1 asFloat + op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18051
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18052
    "Created: / 8.1.1999 / 15:11:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18053
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18054
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18055
_DDIV:op1 _:op2
981
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18056
    ^ op1 asFloat uncheckedDivide: op2 asFloat.
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18057
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18058
    "Created: / 08-01-1999 / 15:09:10 / cg"
03ded8a12bb9 Fixes in arraycopy native
vranyj1
parents: 964
diff changeset
 18059
    "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
 18060
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18061
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18062
_DMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18063
    ^ op1 asFloat * op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18064
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18065
    "Created: / 8.1.1999 / 14:49:52 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18066
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18067
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18068
_DNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18069
    ^ op asFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18070
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18071
    "Created: / 8.1.1999 / 15:06:15 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18072
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18073
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18074
_DSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18075
    ^ op1 asFloat - op2 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18076
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18077
    "Created: / 8.1.1999 / 15:10:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18078
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18079
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18080
_F2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18081
    ^ self _D2I:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18082
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18083
    "Created: / 8.1.1999 / 14:47:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18084
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18085
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18086
_F2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18087
    ^ self _D2L:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18088
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18089
    "Created: / 8.1.1999 / 14:47:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18090
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18091
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18092
_FADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18093
    ^ op1 asShortFloat + op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18094
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18095
    "Created: / 8.1.1999 / 15:11:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18096
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18097
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18098
_FDIV:op1 _:op2
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18099
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18100
    op1 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18101
        op2 isZero ifTrue:[ ^ Float NaN ]
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18102
    ].
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18103
    op2 isZero ifTrue:[
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18104
        ^ Float infinity
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18105
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18106
    ^ op1 asShortFloat / op2 asShortFloat.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18107
1514
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18108
    "Created: / 08-01-1999 / 15:09:32 / cg"
b7e3d52a293d - JavaVM
vranyj1
parents: 1513
diff changeset
 18109
    "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
 18110
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18111
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18112
_FMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18113
    ^ op1 asShortFloat * op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18114
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18115
    "Created: / 8.1.1999 / 14:50:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18116
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18117
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18118
_FNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18119
    ^ op asShortFloat negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18120
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18121
    "Created: / 8.1.1999 / 15:06:33 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18122
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18123
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18124
_FSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18125
    ^ op1 asShortFloat - op2 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18126
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18127
    "Created: / 8.1.1999 / 15:08:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18128
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18129
802
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18130
_INSTANCEOF2: object _: classRef 
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18131
    |class|
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18132
    classRef isJavaRef ifFalse: [self halt: 'expected only classRefs - maybe I was wrong'].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18133
    class := classRef resolve.
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18134
    object ifNil: [ ^ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18135
    ^ (self canCast: object class to: class) ifTrue: [ 1 ] ifFalse: [ 0 ].
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18136
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18137
    "Created: / 19-05-2011 / 10:14:18 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18138
!
dc61c3abc940 added _CHECKCAST2 and _INSTANCEOF2 to JavaVM
hlopkmar
parents: 801
diff changeset
 18139
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18140
_INSTANCEOF:object _:class
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18141
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18142
    object ifNil:[^0].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18143
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18144
    ^(self canCast: object class to: class)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18145
        ifTrue:[1]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18146
        ifFalse:[0]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18147
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18148
    "Created: / 08-01-1999 / 14:52:54 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18149
    "Modified: / 27-01-1999 / 20:56:25 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18150
    "Modified: / 25-02-2011 / 18:31:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18151
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18152
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18153
_L2D:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18154
    ^ op1 asFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18155
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18156
    "Created: / 8.1.1999 / 14:46:09 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18157
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18158
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18159
_L2F:op1
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18160
    ^ op1 asShortFloat
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18161
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18162
    "Created: / 8.1.1999 / 14:46:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18163
    "Modified: / 8.1.1999 / 14:50:18 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18164
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18165
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18166
_LADD:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18167
    |sum|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18168
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18169
    sum := (op1 + op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18170
    ^ sum
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18171
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18172
    "Created: / 8.1.1999 / 15:07:39 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18173
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18174
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18175
_LAND:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18176
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18178
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18179
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18180
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18181
    rslt := op1 bitAnd: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18182
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18183
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18184
    "Modified: / 7.1.1998 / 21:21:53 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18185
    "Created: / 8.1.1999 / 14:54:22 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18186
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18187
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18188
_LDIV:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18189
    |quo|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18191
    quo := op1 quo: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18192
    ^ quo
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18193
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18194
    "Created: / 8.1.1999 / 15:04:47 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18195
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18196
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18197
_LMUL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18198
    |prod o1 o2 sign|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18200
"/ self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18201
    "/ ST's largeIntegers compute a correct result;
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18202
    "/ but here, we want the overflow to flow into the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18203
    "/ sign bit ... (sigh)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18205
    sign := 1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18206
    (o1 := op1) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18207
	sign := -1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18208
	o1 := o1 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18209
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18210
    (o2 := op2) < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18211
	sign := sign negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18212
	o2 := o2 negated.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18213
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18214
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18215
    prod := (o1 * o2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18216
    (prod bitAnd:16r8000000000000000) ~~ 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18217
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18218
    sign == -1 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18219
	prod := prod negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18220
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18221
    ^ prod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18222
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18223
    "Created: / 8.1.1999 / 15:10:04 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18224
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18225
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18226
_LNEG:op
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18227
    ^ op asInteger negated
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18228
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18229
    "Created: / 8.1.1999 / 15:06:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18230
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18231
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18232
_LOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18233
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18234
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18235
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18236
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18237
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18238
    rslt := op1 bitOr: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18239
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18240
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18241
    "Created: / 8.1.1999 / 15:05:10 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18242
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18243
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18244
_LREM:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18245
    |rem|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18246
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18247
    rem := op1 rem: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18248
    ^ rem
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18249
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18250
    "Modified: / 7.1.1998 / 00:23:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18251
    "Created: / 8.1.1999 / 15:04:23 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18252
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18254
_LSHL:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18255
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18256
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18257
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18258
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18259
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18260
    rslt := (op1 bitShift:op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18261
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18262
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18263
    "Created: / 8.1.1999 / 14:51:08 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18264
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18265
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18266
_LSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18267
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18268
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18269
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18270
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18271
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18273
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18274
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18275
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18276
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18277
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18278
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18279
    "Created: / 8.1.1999 / 14:51:57 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18280
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18281
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18282
_LSUB:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18283
    |diff|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18284
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18285
    diff := (op1 - op2) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18286
    ^ diff
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18287
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18288
    "Created: / 8.1.1999 / 15:10:33 / cg"
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
_LUSHR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18292
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18293
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18294
    op1 < 0 ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18295
	self halt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18296
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18297
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18298
    (op1 < 0) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18299
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18300
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18301
    rslt := (op1 bitShift:op2 negated) bitAnd:16rFFFFFFFFFFFFFFFF.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18302
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18303
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18304
    "Modified: / 7.1.1998 / 21:22:17 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18305
    "Created: / 8.1.1999 / 14:51:32 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18306
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18307
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18308
_LXOR:op1 _:op2
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18309
    |rslt|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18310
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18311
    (op1 < 0 or:[op2 < 0]) ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18312
	self halt.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18313
    ].
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18314
    rslt := op1 bitXor: op2.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18315
    ^ rslt
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18316
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18317
    "Created: / 8.1.1999 / 15:12:28 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18318
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18319
1093
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 18320
_MONITORENTER: someObject 
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18321
    self assert: (thisContext sender isJavaContext).
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18322
    self assert: (thisContext sender isMarkedForUnwind).
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18323
    self monitorEnter: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18324
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18325
    "Created: / 08-01-1999 / 14:23:10 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18326
    "Modified: / 08-01-1999 / 18:47:26 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18327
    "Modified: / 10-08-2011 / 20:19:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1103
bf4c6f5bc68e just assert
hlopkmar
parents: 1102
diff changeset
 18328
    "Modified: / 09-11-2011 / 19:23:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1093
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 18329
!
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 18330
255c230a1c55 hacking monitors, not working yet :P
hlopkmar
parents: 1092
diff changeset
 18331
_MONITOREXIT: someObject 
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18332
self assert: (thisContext sender isJavaContext).
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18333
    self monitorExit: someObject in: thisContext sender.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18334
905
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18335
    "Created: / 08-01-1999 / 14:23:19 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18336
    "Modified: / 08-01-1999 / 18:47:08 / cg"
d03d9e05c581 Temporary commit. method resolving fixed
vranyj1
parents: 904
diff changeset
 18337
    "Modified: / 10-08-2011 / 20:20:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1100
1405b1485a66 fixes and guards for monitors
hlopkmar
parents: 1098
diff changeset
 18338
    "Modified: / 09-11-2011 / 12:42:06 / Marcel Hlopko <hlopkmar@fel.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
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18341
_MULTINEW2: classRef _: dim1 
927
vranyj1
parents: 926
diff changeset
 18342
vranyj1
parents: 926
diff changeset
 18343
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18344
1151
vranyj1
parents: 1150
diff changeset
 18345
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18346
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18347
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18348
        ^nil
vranyj1
parents: 1150
diff changeset
 18349
    ].
927
vranyj1
parents: 926
diff changeset
 18350
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18351
    arrCls := classRef resolve.
vranyj1
parents: 926
diff changeset
 18352
    arr := arrCls new: dim1.
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18353
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18354
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18355
    "Created: / 19-05-2011 / 10:46:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18356
    "Modified: / 22-11-2011 / 09:45:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18357
!
vranyj1
parents: 926
diff changeset
 18358
vranyj1
parents: 926
diff changeset
 18359
_MULTINEW2: classRef _: dim1 _: dim2
vranyj1
parents: 926
diff changeset
 18360
vranyj1
parents: 926
diff changeset
 18361
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18362
1151
vranyj1
parents: 1150
diff changeset
 18363
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18364
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18365
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18366
        ^nil
vranyj1
parents: 1150
diff changeset
 18367
    ].
vranyj1
parents: 1150
diff changeset
 18368
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18369
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18370
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18371
        ^nil
vranyj1
parents: 1150
diff changeset
 18372
    ].
vranyj1
parents: 1150
diff changeset
 18373
vranyj1
parents: 1150
diff changeset
 18374
927
vranyj1
parents: 926
diff changeset
 18375
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18376
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18377
    arr := arrCls new: dim2.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18378
    1 to: dim2 do:[:i|
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18379
        arr at: i put: (arrCls javaComponentClass new: dim1)
927
vranyj1
parents: 926
diff changeset
 18380
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18381
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18382
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18383
    "Created: / 19-05-2011 / 10:47:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18384
    "Modified: / 22-11-2011 / 09:45:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
927
vranyj1
parents: 926
diff changeset
 18385
!
vranyj1
parents: 926
diff changeset
 18386
vranyj1
parents: 926
diff changeset
 18387
_MULTINEW2: classRef _: dim1 _: dim2 _: dim3
vranyj1
parents: 926
diff changeset
 18388
vranyj1
parents: 926
diff changeset
 18389
    | arrCls arr |
vranyj1
parents: 926
diff changeset
 18390
1151
vranyj1
parents: 1150
diff changeset
 18391
    dim1 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18392
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18393
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18394
        ^nil
vranyj1
parents: 1150
diff changeset
 18395
    ].
vranyj1
parents: 1150
diff changeset
 18396
    dim2 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18397
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18398
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18399
        ^nil
vranyj1
parents: 1150
diff changeset
 18400
    ].
vranyj1
parents: 1150
diff changeset
 18401
    dim3 <  0 ifTrue:[
vranyj1
parents: 1150
diff changeset
 18402
        self throwExceptionClassName:'java.lang.NegativeArraySizeException'
vranyj1
parents: 1150
diff changeset
 18403
                         withMessage:'negative array size not allowed'.
vranyj1
parents: 1150
diff changeset
 18404
        ^nil
vranyj1
parents: 1150
diff changeset
 18405
    ].
vranyj1
parents: 1150
diff changeset
 18406
vranyj1
parents: 1150
diff changeset
 18407
927
vranyj1
parents: 926
diff changeset
 18408
    self assert: classRef isJavaClassRef.
vranyj1
parents: 926
diff changeset
 18409
    arrCls := classRef resolve.
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18410
    arr := arrCls new: dim3.
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18411
    1 to: dim3 do:[:i|
927
vranyj1
parents: 926
diff changeset
 18412
        | arr2 |
vranyj1
parents: 926
diff changeset
 18413
        arr2 := arrCls javaComponentClass new: dim2.
vranyj1
parents: 926
diff changeset
 18414
        1 to: dim2 do:[:j|
928
c999ae3593e3 JavaVM: fixes in MULTINEWARRAY
vranyj1
parents: 927
diff changeset
 18415
            arr2 at: j put: (arrCls javaComponentClass javaComponentClass new: dim1).
927
vranyj1
parents: 926
diff changeset
 18416
        ].
vranyj1
parents: 926
diff changeset
 18417
        arr at: i put: arr2.
vranyj1
parents: 926
diff changeset
 18418
    ].
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18419
    ^ arr.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18420
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18421
    "Created: / 19-05-2011 / 10:47:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1151
vranyj1
parents: 1150
diff changeset
 18422
    "Modified: / 22-11-2011 / 09:45:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18423
!
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18424
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18425
_MULTINEW:typeRef _:dim1 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18426
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18427
    |arr|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18428
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18429
    arr := typeRef new:dim1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18430
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18431
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18432
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18433
    "Created: / 08-01-1999 / 14:15:42 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18434
    "Modified: / 08-01-1999 / 18:03:05 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18435
    "Modified: / 16-03-2011 / 16:20:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18436
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18437
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18438
_MULTINEW: typeRef _: dim1 _: dim2 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18439
    | arr |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18440
804
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18441
    arr := typeRef new: dim2.
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18442
    1 to: dim2
c125b8449315 JavaVM class>>_MULTINEW2
hlopkmar
parents: 802
diff changeset
 18443
        do: [:idx | arr at: idx put: (self _MULTINEW: typeRef javaComponentClass _: dim1) ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18444
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18445
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18446
    "Created: / 08-01-1999 / 14:15:46 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18447
    "Modified: / 08-01-1999 / 17:58:11 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18448
    "Modified: / 16-03-2011 / 16:19:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18449
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18450
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18451
_MULTINEW:typeRef _:dim1 _:dim2 _:dim3 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18452
    |clsRef cls arr elType elSizes|
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18453
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18454
    clsRef := typeRef asClassPointerRef.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18455
    cls := clsRef javaArrayClass.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18456
    arr := cls new:dim3.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18457
    elType := typeRef deref.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18458
    1 to:dim3
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18459
        do:
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18460
            [:idx | 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18461
            arr at:idx
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18462
                put:(self 
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18463
                        _MULTINEW:elType
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18464
                        _:dim1
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18465
                        _:dim2) ].
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18466
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18467
"/ self halt.
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 18468
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18469
    ^ arr
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18470
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18471
    "Modified: / 6.1.1998 / 23:34:35 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18472
    "Created: / 8.1.1999 / 14:15:49 / cg"
1497
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18473
!
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18474
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18475
_NEWARRAY:type _:size 
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18476
    "VM helper method NEWARRAY insn. Called only when
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18477
     size is not an SmallInt or negative"
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18478
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18479
    size < 0 ifTrue:[
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18480
        self throwNegativeArraySizeException: size.
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18481
    ]
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18482
b5a0ba277866 - JavaVM
vranyj1
parents: 1493
diff changeset
 18483
    "Created: / 13-05-2012 / 14:46:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18484
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18485
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18486
!JavaVM class methodsFor:'windows - events'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18487
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18488
awtEventsForEvent: anEvent javaWindow: jWin 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18489
    "given an ST/X event, create corresponding AWT event(s) for it"
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18490
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18491
    | 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
 18492
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18493
    type := anEvent type.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18494
    eventArgs := anEvent arguments.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18495
    key := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18496
    modifiers := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18497
    x := 0.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18498
    y := 0.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18499
    ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18500
        or: [ (type == #graphicExposeX:y:width:height:) or: [ (type == #damage) ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18501
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18502
                "/        jWindowEventClass := Java classForName:'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18503
                "/        id := (jPaintEventClass instVarNamed:'PAINT').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18504
                jPaintEventClass := self classForName: 'java.awt.event.PaintEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18505
                id := (jPaintEventClass instVarNamed: 'UPDATE').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18506
                ((type == #exposeX:y:width:height:) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18507
                    or: [ (type == #graphicExposeX:y:width:height:) ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18508
                        ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18509
                            x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18510
                            y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18511
                            w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18512
                            h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18513
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18514
                        ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18515
                            x := eventArgs left.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18516
                            y := eventArgs top.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18517
                            w := eventArgs width.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18518
                            h := eventArgs height.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18519
                        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18520
                jRect := (Java classForName: 'java.awt.Rectangle') basicNew.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18521
                jRect instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18522
                jRect instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18523
                jRect instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18524
                jRect instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18525
                jEv := jPaintEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18526
                jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18527
                jEv instVarNamed: 'updateRect' put: jRect.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18528
                
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18529
"/        jEv instVarNamed:'g'         put:jWin.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18530
                
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18531
                ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18532
            ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18533
    (anEvent isKeyEvent 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18534
        or: [ anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ] ]) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18535
            ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18536
                jInputEventClass := Java classForName: 'java.awt.event.InputEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18537
                anEvent hasAlt ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18538
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'ALT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18539
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18540
                anEvent hasCtrl ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18541
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'CTRL_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18542
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18543
                anEvent hasMeta ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18544
                    modifiers := modifiers bitOr: (jInputEventClass instVarNamed: 'META_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18545
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18546
                anEvent hasShift ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18547
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18548
                                bitOr: (jInputEventClass instVarNamed: 'SHIFT_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18549
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18550
                anEvent hasButton1 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18551
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18552
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON1_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18553
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18554
                anEvent hasButton2 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18555
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18556
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON2_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18557
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18558
                anEvent hasButton3 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18559
                    modifiers := modifiers 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18560
                                bitOr: (jInputEventClass instVarNamed: 'BUTTON3_MASK')
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18561
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18562
                anEvent isPointerEnterLeaveEvent ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18563
                    "/ ST/X does not (yet) record this information
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18564
                    "/ with pointerLeave events.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18565
                    x := anEvent x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18566
                    y := anEvent y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18567
                ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18568
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18569
    anEvent isKeyEvent ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18570
        jKeyEventClass := Java classForName: 'java.awt.event.KeyEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18571
        key := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18572
        keyChar := 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18573
        key := anEvent key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18574
        key isCharacter ifTrue: [ key := keyChar := key asciiValue ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18575
            untranslatedKey := anEvent view device keyboardMap keyAtValue: key
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18576
                        ifAbsent: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18577
            untranslatedKey == #Insert ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18578
                key := jKeyEventClass instVarNamed: 'VK_INSERT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18579
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18580
            untranslatedKey == #Delete ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18581
                key := jKeyEventClass instVarNamed: 'VK_DELETE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18582
                "/ 127
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18583
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18584
            untranslatedKey == #BackSpace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18585
                key := jKeyEventClass instVarNamed: 'VK_BACK_SPACE'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18586
                "/ 8
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18587
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18588
            untranslatedKey == #Return ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18589
                key := jKeyEventClass instVarNamed: 'VK_ENTER'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18590
                "/ 13
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18591
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18592
            untranslatedKey == #Tab ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18593
                key := jKeyEventClass instVarNamed: 'VK_TAB'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18594
                "/ 9
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18595
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18596
            untranslatedKey == #Home ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18597
                key := jKeyEventClass instVarNamed: 'VK_HOME'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18598
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18599
            untranslatedKey == #End ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18600
                key := jKeyEventClass instVarNamed: 'VK_END'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18601
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18602
            (key == #PreviousPage or: [ untranslatedKey == #Prior ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18603
                key := jKeyEventClass instVarNamed: 'VK_PAGE_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18604
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18605
            (key == #NextPage or: [ key == #EndOfText ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18606
                key := jKeyEventClass instVarNamed: 'VK_PAGE_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18607
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18608
            untranslatedKey == #CursorUp ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18609
                key := jKeyEventClass instVarNamed: 'VK_UP'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18610
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18611
            untranslatedKey == #CursorDown ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18612
                key := jKeyEventClass instVarNamed: 'VK_DOWN'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18613
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18614
            untranslatedKey == #CursorLeft ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18615
                key := jKeyEventClass instVarNamed: 'VK_LEFT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18616
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18617
            untranslatedKey == #CursorRight ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18618
                key := jKeyEventClass instVarNamed: 'VK_RIGHT'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18619
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18620
            (#( #F1 #F2 #F3 #F4 #F5 #F6 #F7 #F8 #F9 #F10 #F11 #F12 ) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18621
                includes: untranslatedKey) 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18622
                    ifTrue: [ key := jKeyEventClass instVarNamed: ('VK_' , untranslatedKey) ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18623
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18624
        (type == #keyPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18625
            id := jKeyEventClass instVarNamed: 'KEY_PRESSED'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18626
        ] ifFalse: [ id := jKeyEventClass instVarNamed: 'KEY_RELEASED' ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18627
        jEv := jKeyEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18628
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18629
        jEv instVarNamed: 'keyCode' put: key.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18630
        jEv instVarNamed: 'keyChar' put: keyChar.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18631
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18632
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18633
"/        jEv instVarNamed:'x'         put:x.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18634
"/        jEv instVarNamed:'y'         put:y.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18635
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18636
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18637
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18638
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18639
    (anEvent isButtonEvent or: [ anEvent isPointerEnterLeaveEvent ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18640
        jMouseEventClass := Java classForName: 'java.awt.event.MouseEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18641
        clickCount := 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18642
        (type == #buttonPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18643
            id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18644
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18645
            (type == #buttonRelease:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18646
                id := jMouseEventClass instVarNamed: 'MOUSE_RELEASED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18647
            ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18648
                (type == #buttonMotion:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18649
                    (anEvent state bitAnd: (anEvent view device anyButtonMotionMask)) == 0 ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18650
                        id := jMouseEventClass instVarNamed: 'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18651
                    ] ifFalse: [ id := jMouseEventClass instVarNamed: 'MOUSE_DRAGGED'. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18652
                ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18653
                    "/                    (type == #'pointerMotion:x:y:') ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18654
                    "/                        id := jMouseEventClass instVarNamed:'MOUSE_MOVED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18655
                    "/                    ] ifFalse:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18656
                    (type == #pointerEnter:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18657
                        id := jMouseEventClass instVarNamed: 'MOUSE_ENTERED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18658
                    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18659
                        (type == #pointerLeave:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18660
                            id := jMouseEventClass instVarNamed: 'MOUSE_EXITED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18661
                        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18662
                            (type == #buttonMultiPress:x:y:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18663
                                id := jMouseEventClass instVarNamed: 'MOUSE_PRESSED'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18664
                                clickCount := 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18665
                            ] ifFalse: [ self halt. ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18666
                            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18667
"/                        ]
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18668
                        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18669
                    ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18670
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18671
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18672
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18673
        jEv := jMouseEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18674
        jEv instVarNamed: 'modifiers' put: modifiers.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18675
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18676
        jEv instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18677
        jEv instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18678
        jEv instVarNamed: 'when' put: (OperatingSystem getMillisecondTime).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18679
        ^ Array with: jEv
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18680
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18681
    (type == #configureX:y:width:height:) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18682
        view := anEvent view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18683
        x := eventArgs at: 1.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18684
        y := eventArgs at: 2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18685
        w := eventArgs at: 3.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18686
        h := eventArgs at: 4.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18687
        resized := (w ~~ view width or: [ h ~~ view height ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18688
        moved := (x ~~ view left or: [ y ~~ view top ]).
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18689
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18690
"/        (view isTopView or:[view isPopUpView]) ifTrue:[
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18691
        "/ view must update its origin/extent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18692
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18693
        view dispatchEvent: anEvent.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18694
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18695
"/        ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18696
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18697
        "/ must change the components extent
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18698
        "/ is there no cleaner way to do this ?
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18699
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18700
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18701
        view isTopView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18702
            view isPopUpView ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18703
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18704
                "/ sigh - don't include the menu.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18705
                "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18706
                menu := self topViewsMenu: view.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18707
                menu notNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18708
                    "/ must add the menus height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18709
                    h := h - menu height
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18710
                ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18711
            ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18712
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18713
        jWin instVarNamed: 'width' put: w.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18714
        jWin instVarNamed: 'height' put: h.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18715
        jWin instVarNamed: 'x' put: x.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18716
        jWin instVarNamed: 'y' put: y.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18717
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18718
        moved ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18719
            id := (jComponentEventClass instVarNamed: 'COMPONENT_MOVED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18720
            jEv1 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18721
            jEv1 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18722
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18723
        resized ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18724
            id := (jComponentEventClass instVarNamed: 'COMPONENT_RESIZED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18725
            jEv2 := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18726
            jEv2 instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18727
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18728
        jEv1 isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18729
            jEv2 isNil ifTrue: [ ^ nil ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18730
            ^ Array with: jEv2
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18731
        ] ifFalse: [ jEv2 isNil ifTrue: [ ^ Array with: jEv1 ] ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18732
        ^ Array with: jEv1 with: jEv2.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18733
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18734
    (type == #focusIn) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18735
        "/ 'focusIn' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18736
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18737
        id := (jComponentEventClass instVarNamed: 'FOCUS_GAINED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18738
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18739
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18740
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18741
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18742
    (type == #focusOut) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18743
        "/ 'focusOut' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18744
        jComponentEventClass := Java classForName: 'java.awt.event.FocusEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18745
        id := (jComponentEventClass instVarNamed: 'FOCUS_LOST').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18746
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18747
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18748
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18749
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18750
    (type == #mapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18751
        "/ 'mapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18752
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18753
        id := (jComponentEventClass instVarNamed: 'COMPONENT_SHOWN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18754
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18755
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18756
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18757
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18758
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18759
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18760
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18761
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18762
    (type == #unmapped) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18763
        "/ 'unmapped' printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18764
        jComponentEventClass := Java classForName: 'java.awt.event.ComponentEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18765
        id := (jComponentEventClass instVarNamed: 'COMPONENT_HIDDEN').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18766
        
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18767
"/        x := eventArgs at:1.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18768
"/        y := eventArgs at:2.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18769
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18770
        jEv := jComponentEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18771
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18772
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18773
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18774
    (type == #terminate) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18775
        jWindowEventClass := Java classForName: 'java.awt.event.WindowEvent'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18776
         "NEW
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18777
         id := (jWindowEventClass instVarNamed:'WINDOW_CLOSING').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18778
        " "OLD "
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18779
        id := (jWindowEventClass instVarNamed: 'WINDOW_CLOSED').
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18780
         
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18781
        jEv := jWindowEventClass newCleared.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18782
        jEv instVarNamed: 'id' put: id.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18783
        ^ Array with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18784
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18785
    EventTrace == true ifTrue: [ ('JAVA: unhandled event:' , type) infoPrintCR. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18786
    ^ nil.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18787
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18788
    "Created: / 6.1.1998 / 20:38:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18789
    "Modified: / 9.1.1999 / 09:29:58 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18790
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18791
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18792
delegatesTo:someOne
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18793
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18794
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18795
    "Created: / 25.9.1999 / 16:11:48 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18796
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18797
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18798
doWindowsEventThread
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18799
    "invoked in an endless loop by the WToolkit-eventLoop
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18800
     native method."
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18801
    
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18802
    | sensor  event  more |
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18803
    (JavaWindowGroup isNil or: [ KnownWindows isNil ]) ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18804
        "/ '*** eventThread: no windowGroup / views ...' printCR.        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18805
        self halt: 'monitors are reimplemented, change me if you know how and why'.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18806
        "self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18807
            waitFor: FirstWindowCreationSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18808
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18809
            timeOut: nil."
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18810
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18811
        "/ Delay waitForSeconds:0.1.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18812
        
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18813
        ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18814
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18815
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18816
    "/ wait for an event to arrive ...
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18817
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18818
    sensor := JavaWindowGroup sensor.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18819
    [ sensor hasEvents or: [ sensor damageCount ~~ 0 ] ] whileFalse: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18820
        EventTrace ifTrue: [ '*** eventThread waiting ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18821
        Processor activeProcess state: #eventWait.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18822
        self 
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18823
            waitFor: sensor eventSemaphore
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18824
            state: #eventWait
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18825
            timeOut: nil.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18826
    ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18827
    EventTrace ifTrue: [ '*** eventThread event arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18828
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18829
    "/ EventTrace := true
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18830
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18831
    more := true.
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18832
    [ more ] whileTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18833
        sensor hasDamage ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18834
            EventTrace ifTrue: [ '*** eventThread: damage arrived ...' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18835
            event := sensor nextDamage.
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18836
        ] ifFalse: [ event := sensor nextEvent. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18837
        event isNil ifTrue: [
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18838
            EventTrace == true ifTrue: [ '*** eventThread: nil event ignored' printCR. ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18839
            ^ self
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18840
        ].
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18841
        more := self processEvent: event
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18842
    ]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18843
1147
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18844
    "Created: / 06-01-1998 / 21:02:40 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18845
    "Modified: / 30-12-1998 / 19:21:36 / cg"
9431cebfd873 java monitors totally integrated.. maybe too ambitious.. we'll see
hlopkmar
parents: 1145
diff changeset
 18846
    "Modified: / 22-11-2011 / 13:22:32 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18847
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18848
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18849
processEvent: event 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18850
    | evQ  jEvents  jWToolKitClass  jWToolKit  jWinPeer  jWin  v  eventConsumed |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18851
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18852
    KnownWindows isNil ifTrue: [ ^ false ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18853
    v := event view.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18854
    jWinPeer := self jPeerForView: v.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18855
    jWinPeer isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18856
        v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18857
            "/ mhmh - an event for a JavaView,
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18858
            "/ which has no peer (anyMore ?)
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18859
            "/ should not happen.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18860
        ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18861
            "/ mhmh - an event for a subcomponent of an ST widget.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18862
            "/ let it be handled normally.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18863
            EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18864
                ('*** eventThread: ' , event type 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18865
                    , '-event for unknown java-view - passed to view.') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18866
            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18867
            event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18868
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18869
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18870
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18871
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18872
    "/ change:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18873
    "/ in the previous version, events for ST/X widgets (i.e. buttons etc)
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18874
    "/ where not passed to java, but instead forwarded directly to the widget
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18875
    "/ by the code below.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18876
    "/ This has changed, to pass it to Java, which eventually passes it to the
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18877
    "/ peer via the handleEvent native method (unless the event got consumed).
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18878
    "/ This is req'd to let java keep track of keyboard/mouse input for widgets.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18879
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18880
    (event isDamage and: [ v isJavaView ]) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18881
        "/    "/ most views handle their events themself (being ST/X views) ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18882
        "/
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18883
        "/    v class ~~ JavaView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18884
        "/"/        v class ~~ StandardSystemView ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18885
        "/"/            EventTrace ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18886
        "/"/                    ('*** eventThread: event handled by view itself (' , v class name , ')') printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18887
        "/"/            ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18888
        "/"/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18889
        "/"/            ^ self.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18890
        "/"/        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18891
        "/        (event type == #'exposeX:y:width:height'
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18892
        "/        or:[event type == #'graphicsExposeX:y:width:height']) ifTrue:[
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18893
        "/            "/ send to view, but also handle in JAVA
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18894
        "/            event sendEventWithFocusOn:nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18895
        "/        ]
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18896
        "/    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18897
        (#( #mapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18898
         #unmapped
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18899
         #configureX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18900
         #exposeX:y:width:height:
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18901
         #graphicsExposeX:y:width:height: ) includes: event type) ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18902
            event sendEventWithFocusOn: nil.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18903
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18904
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18905
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18906
    "/ what a kludge - some events are passed back to
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18907
    "/ ST via the WComponent-handleEvent native method.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18908
    "/ However, repaints are not.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18909
    "/ In order to let ST widgets do the drawing,
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18910
    "/ selectively filter exposeEvents from Java ...
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18911
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18912
    eventConsumed := false.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18913
    v isJavaView ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18914
        "/ all events handled by Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18915
    ] ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18916
        eventConsumed := true.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18917
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18918
        "/ let widget handle it.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18919
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18920
        event view dispatchEvent: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18921
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18922
        "/ some are not passed to Java ...
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18923
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18924
        event isDamage ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18925
            (v isKindOf: Button) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18926
            (v isKindOf: TextView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18927
            (v isKindOf: Label) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18928
            (v isKindOf: ComboBoxView) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18929
            (v isKindOf: ScrollBar) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18930
            (v isKindOf: Scroller) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18931
            (v isKindOf: MenuPanel) ifTrue: [ ^ true ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18932
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18933
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18934
    jWin := jWinPeer instVarNamed: 'target'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18935
    EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18936
        ('*** eventThread: event (' , event type , ') handled by JAVA: ') 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18937
            infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18938
        jWinPeer class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18939
        ' (' infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18940
        jWin class name infoPrint.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18941
        ')' infoPrintCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18942
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18943
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18944
    "/ create an event
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18945
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18946
    jEvents := self awtEventsForEvent: event javaWindow: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18947
    jEvents isNil ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18948
        EventTrace ifTrue: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18949
            ('*** eventThread: event ignored: ' , event type) printCR.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18950
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18951
        ^ true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18952
    ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18953
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18954
"/    v superView isNil ifTrue:[
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18955
"/        ('*** eventThread: event ignored for topView: ' , event type) printCR.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18956
"/        ^ self
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18957
"/    ].
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18958
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18959
    jWToolKitClass := self classForName: 'java.awt.Toolkit'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18960
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18961
    "/ jWToolKit := jWToolKitClass perform:#getDefaultToolkit.
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18962
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18963
    jWToolKit := jWToolKitClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18964
                performStatic: #'getDefaultToolkit()Ljava/awt/Toolkit;'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18965
    jEvents do: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18966
        :jEv | 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18967
        jEv instVarNamed: 'source' put: jWin.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18968
        jEv instVarNamed: 'consumed' put: 0.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18969
        eventConsumed ifFalse: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18970
            "/ the first gets the original event as data
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18971
            jEv instVarNamed: 'data' put: event.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18972
            eventConsumed := true
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18973
        ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18974
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18975
        "/ post it (them) to the event queue
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18976
        
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18977
        EventTrace == true ifTrue: [ 'postEvent to Java ...' printCR. ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18978
        jWToolKit "class" perform: #'postEvent(Ljava/awt/AWTEvent;)V' with: jEv.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 18979
    ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18980
    ^ false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18981
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18982
    "Created: / 6.1.1998 / 20:36:36 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18983
    "Modified: / 10.12.1998 / 19:36:59 / cg"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18984
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 18985
1597
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18986
!JavaVM::Performance class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18987
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18988
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18989
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18990
    A helper class to keep performance counters for JavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18991
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18992
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18993
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18994
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18995
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18996
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18997
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18998
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 18999
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19000
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19001
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19002
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19003
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19004
!JavaVM::Performance class methodsFor:'instance creation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19005
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19006
for: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19007
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19008
    ^self new setVM: aJavaVM.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19009
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19010
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19011
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19012
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19013
!JavaVM::Performance methodsFor:'initialization'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19014
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19015
setVM: aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19016
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19017
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM 
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19018
    itself, not its instance)"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19019
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19020
    vm := aJavaVM
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19021
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19022
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19023
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19024
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19025
!JavaVM::Performance methodsFor:'orinting-streams'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19026
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19027
printOpenExternalStream: stream number: index on: output
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19028
    "Print info about given external stream to output. Return true,
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19029
     if the instance is executor, false otherwise"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19030
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19031
    | executor |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19032
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19033
    executor := ((3 to: stream class instSize) allSatisfy:[:index|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19034
        index == 6 or:[index == 7 or:[(stream instVarAt: index) isNil]]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19035
    ]).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19036
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19037
    '%-4d %-30s %-15s %s' printf:{
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19038
        index .
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19039
        stream class name.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19040
        executor ifTrue:['(executor)'] ifFalse:[(self printOpenExternalStreamIdentificationOf: stream)].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19041
        executor ifTrue:[''] ifFalse:[stream isFileStream ifTrue:[stream pathName ? '??? no pathName ???'] ifFalse:['']]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19042
    } on: output.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19043
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19044
    ^ executor
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19045
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19046
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19047
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19048
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19049
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19050
    "Created: / 14-08-2012 / 01:02:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19051
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19052
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19053
printOpenExternalStreamIdentificationOf:stream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19054
    | zc oft |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19055
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19056
    (oft := Smalltalk at:#'JavaVM:OpenFileTable') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19057
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19058
        idx := oft identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19059
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19060
            ^ 'VM   OFT[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19061
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19062
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19063
    (zc := Smalltalk at:#'JavaVM:ZipCache') notNil ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19064
        | idx |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19065
        idx := zc identityIndexOf: stream.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19066
        idx ~~ 0 ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19067
            ^ 'VM   ZC[' ,idx printString, ']'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19068
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19069
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19070
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19071
     ((Smalltalk at:#'Java:SourceCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19072
        each == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19073
            ^ 'Java SC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19074
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19075
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19076
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19077
    ((Smalltalk at:#'JavaClassReader:JavaArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19078
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19079
            ^ 'JCR  JAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19080
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19081
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19082
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19083
    ((Smalltalk at:#'Java:SourceArchiveCache') ? #()) do:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19084
        (each instVarAt:1 "named: #file") == stream ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19085
            ^ 'Java SAC'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19086
        ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19087
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19088
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19089
    ^''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19090
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19091
    "Created: / 14-08-2012 / 01:17:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19092
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19093
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19094
printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19095
    ^self printOpenExternalStreamsOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19096
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19097
    "Created: / 14-08-2012 / 01:03:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19098
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19099
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19100
printOpenExternalStreamsOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19101
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19102
    | nOpenStreams nExecutors |
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19103
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19104
    aStream nextPutLine: '=== JavaVM open external stream statistics ==='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19105
    aStream nextPutLine: Timestamp now printString.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19106
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19107
    nOpenStreams := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19108
    nExecutors := 0.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19109
    ExternalStream allSubInstancesDo:[:each|
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19110
        each isOpen ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19111
            nOpenStreams := nOpenStreams + 1.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19112
            (self printOpenExternalStream: each number: nOpenStreams on: aStream) ifTrue:[
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19113
                nExecutors := nExecutors + 1
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19114
            ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19115
            aStream cr.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19116
        ]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19117
    ].
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19118
    aStream cr.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19119
    aStream nextPutLine: 
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19120
        ('SUMMARY: open=%1, executors=%4, java.io=%2, java.util.zip=%3'
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19121
            bindWith: nOpenStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19122
                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
 19123
                with: (((Smalltalk at:#'JavaVM:ZipCache') ? #())      inject:0 into:[:a :s|a + (s notNil ifTrue:[1] ifFalse:[0])])
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19124
                with: nExecutors 
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19125
        ).
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19126
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19127
    aStream nextPutLine: '=============================================='.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19128
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19129
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19130
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19131
        JavaVM::Performance new printOpenExternalStreams
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19132
    "
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19133
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19134
    "Created: / 14-08-2012 / 00:48:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19135
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19136
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19137
!JavaVM::Performance methodsFor:'printing-counters'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19138
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19139
printCounters
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19140
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19141
    self printCountersOn: Transcript
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19142
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19143
    "Created: / 14-08-2012 / 00:43:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19144
!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19145
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19146
printCountersOn: aStream
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19147
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19148
    aStream nextPutLine: '=== JavaVM performance statistics ============'.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19149
    aStream nextPutLine: Timestamp now printString.
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19150
    aStream nextPutLine: '=============================================='.    
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19151
    aStream nextPutLine: ''
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19152
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19153
    "Created: / 14-08-2012 / 00:43:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19154
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19155
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19156
!JavaVM::Reflection class methodsFor:'documentation'!
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19157
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19158
documentation
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19159
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19160
    A helper class to deal with Java reflection
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19161
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19162
    [author:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19163
        Jan Vrany <jan.vrany@fit.cvut.cz>
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19164
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19165
    [instance variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19166
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19167
    [class variables:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19168
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19169
    [see also:]
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19170
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19171
"
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19172
! !
5a070d390259 - JavaVM: added performance counters
vranyj1
parents: 1581
diff changeset
 19173
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19174
!JavaVM::Reflection class methodsFor:'instance creation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19175
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19176
for: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19177
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19178
    ^self new setVM: aJavaVM.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19179
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19180
    "Created: / 21-12-2010 / 19:42:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19181
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19182
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19183
new
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19184
    "return an initialized instance"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19185
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19186
    ^ self basicNew initialize.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19187
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19188
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19189
!JavaVM::Reflection methodsFor:'debugging'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19190
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19191
returnNilIfMissing
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19192
    ^ returnNilIfMissing.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19193
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19194
    "Created: / 28-01-2011 / 15:14:37 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19195
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19196
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19197
returnNilIfMissing:aBoolean
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19198
    returnNilIfMissing:= aBoolean.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19199
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19200
    "Created: / 28-01-2011 / 15:25:35 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19201
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19202
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19203
!JavaVM::Reflection methodsFor:'initialization'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19204
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19205
initialize
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19206
    constantPoolMapping := IdentityDictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19207
    javaClasses := Dictionary new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19208
    javaArrayClasses := IdentityDictionary new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19209
    realMethods := OrderedCollection new.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19210
    javaMethodsPerMethod := Dictionary new
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19211
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19212
    "Created: / 21-12-2010 / 19:46:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19213
    "Modified: / 09-02-2011 / 00:24:28 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19214
    "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
 19215
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19216
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19217
setVM: aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19218
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19219
    "Now, aJavaVM == JavaVM (i.e, the class JavaVM 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19220
    itself, not its instance)"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19221
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19222
    vm := aJavaVM
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19223
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19224
    "Created: / 21-12-2010 / 19:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19225
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19226
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19227
!JavaVM::Reflection methodsFor:'reflection - classes'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19228
1511
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19229
arrayClassFor: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19230
    ^javaArrayClasses at: javaClass ifAbsentPut: block
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19231
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19232
    "Created: / 05-07-2012 / 23:21:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19233
!
7bba867f71e3 - JavaClass
vranyj1
parents: 1509
diff changeset
 19234
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19235
classForJavaClassObject: aJavaClassObject 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19236
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19237
        Given an instance of java.lang.Class, answers
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19238
        real (Java) class associated with it. The instance
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19239
        of java.lang.Class should be first created by myself
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19240
        (by sending #javaClassObjectForClass:)"
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19241
    
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19242
    (javaClasses at: aJavaClassObject ifAbsent: [ 123 ]) 
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 19243
        == (JavaVM classNamed: 'stx/libjava/tests/junir/JUnit3Tests') 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19244
            ifTrue: [ self breakPoint: #jv ].
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19245
    ^ javaClasses at: aJavaClassObject
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19246
        ifAbsent: [
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19247
            vm internalError: 'No class associated with given java.lang.Class!!'.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19248
            
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19249
            "/Please, no nils
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19250
            
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19251
            self returnNilIfMissing ifTrue: nil
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19252
        ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19253
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19254
    "Created: / 28-01-2011 / 15:22:39 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19255
    "Modified: / 05-02-2011 / 20:26:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1036
4ff03464c3b3 refactored registry..
hlopkmar
parents: 1035
diff changeset
 19256
    "Modified: / 21-10-2011 / 13:41:12 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19257
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19258
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19259
javaClassObjectArrayForClasses: classes 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19260
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19261
        Answers an instance of java.lang.Class[] for given
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19262
        real (Java) classes."
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19263
    
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19264
    | array |
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19265
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19266
    array := (vm classForName: 'java.lang.Class') javaArrayClass 
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19267
                new: classes size.
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19268
    classes isNilOrEmptyCollection ifTrue: [ ^ array ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19269
    classes 
1033
a31de6a4cfa4 refactoringl, moved registry to JavaVM
hlopkmar
parents: 1030
diff changeset
 19270
        withIndexDo: [:cls :idx | array at: idx put: (self javaClassObjectForClass: cls) ].
851
fc38cc6ed478 Small refactoring
vranyj1
parents: 850
diff changeset
 19271
    ^ array
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19272
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19273
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19274
    "Created: / 04-02-2011 / 22:08:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19275
    "Modified: / 11-02-2011 / 10:21:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19276
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19277
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19278
javaClassObjectForClass:aClass 
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19279
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19280
    ^self javaClassObjectForClass:aClass init: true.
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19281
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19282
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19283
    "Modified: / 12-08-2011 / 19:07:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19284
!
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19285
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19286
javaClassObjectForClass: aClass init: init 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19287
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19288
        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
 19289
        real (Java) class."
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19290
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19291
    | javaClassObj |
1030
9f87a1830611 fixed bug in java registry and we BOOT :)
hlopkmar
parents: 1029
diff changeset
 19292
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19293
    self assert: aClass isBehavior message: 'aClass is not behavior'.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19294
    self assert: aClass ~~ Array
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19295
        message: 'aClass should not be Array (old impl)'.
1028
d30cabc12354 fixed problem with classInit cycle.. still not booting :)
hlopkmar
parents: 1027
diff changeset
 19296
    javaClasses at: aClass ifPresent: [:javaClassObj | ^ javaClassObj ].
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19297
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19298
    "/ class must be initialized (with all of its superclasses ?).
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19299
    
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19300
    false ifTrue: [ aClass isJavaClass ifTrue: [ aClass classInit ]. ].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19301
    javaClassObj := (vm classForName: 'java.lang.Class') new.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19302
    self rememberJavaClassObject: javaClassObj for: aClass.
1021
8ae6c261878a changed class loaders order, loading of primitive arrays, refactoring coming soon..
hlopkmar
parents: 1017
diff changeset
 19303
    ^ javaClassObj
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19304
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19305
    "Modified: / 28-01-2011 / 15:15:44 / Marcel Hlopko <hlopik@gmail.com>"
911
efa922d67283 Few more natives + JavaInflater
vranyj1
parents: 910
diff changeset
 19306
    "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
 19307
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19308
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19309
javaClassObjectForClassNamed: className 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19310
    "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19311
        Answers an instance of java.lang.Class for given
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19312
        (java) class name. The className may be name of primitive
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19313
        type, i.e. 'int', 'double'."
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19314
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19315
    | cls |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19316
758
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19317
    cls := JavaDescriptor baseTypesByTypeName at: className
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19318
                ifAbsent: [ vm classForName: className ].
be8e84381ce0 Merged with /branches/jk
vranyj1
parents: 752
diff changeset
 19319
    ^ self javaClassObjectForClass: cls.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19320
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19321
    "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
 19322
    "Modified: / 08-04-2011 / 14:45:41 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19323
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19324
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19325
rememberJavaClassObject: jclass for: class
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19326
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19327
    javaClasses at: class put: jclass.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19328
    javaClasses at: jclass put: class.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19329
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19330
    "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
 19331
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19332
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19333
!JavaVM::Reflection methodsFor:'reflection - constant pool'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19334
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19335
constantPoolFor:javaConstantPoolObject 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19336
    ^ constantPoolMapping at:javaConstantPoolObject
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19337
        ifAbsent:[self error:'Given ConstantPool was not created by JVM']
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19338
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19339
    "Created: / 21-12-2010 / 19:56:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19340
    "Modified: / 28-01-2011 / 14:56:54 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19341
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19342
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19343
javaConstantPoolObjectFor: aConstantPool
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19344
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19345
    ^constantPoolMapping at: aConstantPool ifAbsent:
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19346
        [| javaConstantPoolObject |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19347
        javaConstantPoolObject := (vm classForName:'sun.reflect.ConstantPool') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19348
        constantPoolMapping at: aConstantPool put: javaConstantPoolObject.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19349
        constantPoolMapping at: javaConstantPoolObject put: aConstantPool.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19350
        javaConstantPoolObject]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19351
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19352
    "Created: / 21-12-2010 / 19:54:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19353
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19354
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19355
!JavaVM::Reflection methodsFor:'reflection - methods & ctors'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19356
1648
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19357
classForJavaConstructorObject:constructor 
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19358
     "given a java.lang.reflect.Constructor, return the corresponding class for it."
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19359
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19360
    | jclass |
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19361
    jclass := constructor instVarNamed: #clazz.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19362
    ^self classForJavaClassObject: jclass.
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19363
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19364
    "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
 19365
!
ba54c818827d - more reflection stuff moved to JavaMirror
vranyj1
parents: 1639
diff changeset
 19366
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19367
javaConstructorObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19368
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19369
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19370
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19371
    | jCtor |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19372
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19373
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19374
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19375
    jCtor := (Java classForName:'java.lang.reflect.Constructor') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19376
    self javaMethodObjectLikeSlotsInto: jCtor forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19377
    self rememberJavaMethodObject: jCtor for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19378
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19379
    ^ jCtor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19380
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19381
    "Created: / 09-02-2011 / 10:28:12 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19382
    "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
 19383
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19384
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19385
javaMethodObjectForMethod:method 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19386
     "given a real method, return the corresponding java.lang.reflect.Constructor
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19387
      instance for it."
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19388
     | jMethod |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19389
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19390
    javaMethodsPerMethod at:method ifPresent:[:existingCtor|^existingCtor].
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19391
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19392
    jMethod := (Java classForName:'java.lang.reflect.Method') new.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19393
    self javaMethodObjectLikeSlotsInto: jMethod forMethod: method.
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19394
    self rememberJavaMethodObject: jMethod for: method.
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19395
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19396
    jMethod 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19397
        instVarNamed: #name       put: (self javaStringObjectForString: (method selector upTo:$() interned: true);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19398
        instVarNamed: #returnType put: (method descriptor returnClassObject);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19399
        instVarNamed: #annotationDefault put: (method annotations default bytes);
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19400
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19401
        yourself.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19402
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19403
    ^jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19404
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19405
    "Created: / 09-02-2011 / 10:29:46 / Marcel Hlopko <hlopik@gmail.com>"
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19406
    "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
 19407
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19408
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19409
javaMethodObjectLikeSlotsInto: jMethod forMethod: method 
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19410
    "
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19411
       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
 19412
       java.lang.Constructor"
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19413
    
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19414
    | desc |
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19415
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19416
    desc := method descriptor.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19417
    jMethod
837
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19418
        instVarNamed: #clazz put: (self javaClassObjectForClass: method javaClass);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19419
        instVarNamed: #slot put: 0;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19420
        instVarNamed: #modifiers put: method accessFlags;
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19421
        instVarNamed: #parameterTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19422
            put: (self javaClassObjectArrayForClasses: desc parameterClasses);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19423
        instVarNamed: #exceptionTypes
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19424
            put: (self javaClassObjectArrayForClasses: method javaExceptionTable);
8f42226d82c0 slightly refactored exceptionTable methods and their callers.. no typechanging side effects
hlopkmar
parents: 827
diff changeset
 19425
        instVarNamed: #annotations put: (method annotations runtimeVisible bytes);
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19426
        yourself.
1213
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19427
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19428
    method signature notNil ifTrue:[
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19429
        jMethod                 
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19430
            instVarNamed: #signature
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19431
            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
 19432
    ].
fc90769151e8 - fix in reflection over methods (signature is nil for non-generic methods)
vranyj1
parents: 1209
diff changeset
 19433
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19434
    ^ jMethod
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19435
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19436
    "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
 19437
    "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
 19438
    "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
 19439
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19440
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19441
methodForJavaConstructorObject:constructor 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19442
     "given a java.lang.reflect.Constructor, return the corresponding method
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19443
      it."
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19444
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19445
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19446
    slot := constructor instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19447
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19448
"/    ^realMethods at: slot ifAbsent:[self error: 'No ctor found for java ctor object'].
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19449
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19450
"/    |class signature|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19451
"/    class := self classForJavaClassObject:(constructor instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19452
"/    signature := Java as_ST_String:(constructor instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19453
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19454
"/        mthd signature = signature ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19455
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19456
"/        ].
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19457
"/    ].
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19458
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19459
    "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
 19460
    "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
 19461
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19462
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19463
methodForJavaMethodObject:jmethod 
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19464
     "
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19465
         Given an instance of java.lang.reflect.Method, answers
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19466
         real method associated with it. 
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19467
    "
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19468
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19469
    | slot |
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19470
    slot := jmethod instVarNamed: #slot.
1581
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19471
    ^slot
70fbc03d2d82 Java reflection support refactoring - moved to use JavaMirrors
vranyj1
parents: 1579
diff changeset
 19472
"/    ^realMethods at: slot ifAbsent:[self error: 'No method found for java method object'].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19473
1216
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19474
"/    |class name signature |
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19475
"/
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19476
"/    class := self classForJavaClassObject:(aJavaMethodObject instVarNamed:#clazz).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19477
"/    name := Java as_ST_String:(aJavaMethodObject instVarNamed:#name).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19478
"/    signature := Java as_ST_String:(aJavaMethodObject instVarNamed:#signature).
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19479
"/    class methodsDo:[:mthd|
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19480
"/        (mthd name = name and:[mthd signature = signature]) ifTrue:[
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19481
"/            ^mthd
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19482
"/        ]
782cf167a96c few more natives (CRC32)
vranyj1
parents: 1213
diff changeset
 19483
"/    ].
1217
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19484
"/    self assert: false description: 'No such method, malformed java.lang.reflect.Method object?'.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19485
"/    ^nil.
913
1781f130b005 signature instvars renamed to descriptor
vranyj1
parents: 912
diff changeset
 19486
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19487
    "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
 19488
    "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
 19489
!
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19490
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19491
rememberJavaMethodObject: jmethod for: method
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19492
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19493
    javaMethodsPerMethod at: method put: jmethod.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19494
    realMethods add: method.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19495
    jmethod instVarNamed: #slot put: realMethods size.
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19496
a7d011bc112b - bugfixes in (reflection, finalization)
vranyj1
parents: 1216
diff changeset
 19497
    "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
 19498
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19499
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19500
!JavaVM::Reflection methodsFor:'reflection - other'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19501
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19502
javaStringObjectForString:string 
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19503
    ^ self javaStringObjectForString: string interned: false
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19504
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19505
    "Created: / 09-02-2011 / 10:34:57 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19506
!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19507
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19508
javaStringObjectForString:string interned:intern  
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19509
    | s |
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19510
    s := Java as_String: string.
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19511
    ^intern ifTrue:[Java intern: s] ifFalse:[s]
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19512
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19513
    "Modified: / 22-11-2010 / 17:57:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19514
    "Created: / 09-02-2011 / 10:34:29 / Marcel Hlopko <hlopik@gmail.com>"
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19515
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19516
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19517
!JavaVM class methodsFor:'documentation'!
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19518
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19519
version
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 19520
    ^ '$Id$'
923
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19521
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19522
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19523
version_CVS
964
097cdede29f1 Fixes for Windows
vranyj1
parents: 961
diff changeset
 19524
    ^ '§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
 19525
!
b922537eea2a Merged with CVS version
vranyj1
parents: 921
diff changeset
 19526
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19527
version_SVN
1022
38b710d7dfbc svn properties fixed
vranyj1
parents: 1021
diff changeset
 19528
    ^ '$Id$'
752
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19529
! !
ff7bc6428c9c branch jk_new_structure resurrected
vranyj1
parents:
diff changeset
 19530
924
7e66564a2302 fix for native sun.reflect.NativeMethodAccessorImpl.invoke0()
vranyj1
parents: 923
diff changeset
 19531
JavaVM initialize!