JavaLookup.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 28 Jan 2015 03:12:08 +0100
branchcvs_MAIN
changeset 3360 1a8899091305
parent 3041 7a326f9f8aad
child 3412 df11bb428463
permissions -rw-r--r--
Merged with mercurial revision cb6c15e66be (594 changesets total) Merged changesets: - 69af63cd04a3: Jan Vrany, 2013-09-06 10:36 +0100: Added JarFileTests to test signed jars. - d87e89dd5276: Jan Vrany, 2013-09-10 10:34 +0100: Removed packages from subProjects, makefiles uodated. - 13f5be2bf83b: Jan Vrany, 2013-09-15 01:44 +0100: Merged d87e89dd5276 and fe83a843a7bf (branch default - CVS HEAD) - 7d1a1fb5b01a: Jan Vrany, 2013-09-15 02:16 +0100: Merged 272689c14005 and 13f5be2bf83b. - 3d97124aebf5: Jan Vrany, 2013-09-16 01:04 +0100: Fixes for syntax highlighting. - f56049613ff3: Jan Vrany, 2013-09-16 14:09 +0100: Initial support for live code checker / lint. - e20dd8496371: Jan Vrany, 2013-09-17 11:22 +0100: Initial support for source code indexing (for semi-modal navigation) - 7cb269d572d3: Jan Vrany, 2013-09-17 12:19 +0100: Added link to Jenkins. - 83f8416e153c: Jan Vrany, 2013-09-20 02:03 +0100: Cleanup. Change source API in `Java` to return stream rather than string. - a633a2e8e67e: Jan Vrany, 2013-09-20 02:13 +0100: Make sure eclipse Parser is initialized before actually start parsing. - b34398d8856b: Jan Vrany, 2013-09-20 10:56 +0100: Bugfix: JavaClass>>source: check for missing source. - 5c458398e060: Jan Vrany, 2013-09-20 10:57 +0100: Fixes for JavaLintService/Highlighter: correctly flush previous problems... - a9ac61c2c454: Jan Vrany, 2013-09-21 05:23 +0100: Fixes for Java syntax highlighting and checking. - 8ff7a8f45a9f: Jan Vrany, 2013-09-22 10:33 +0100: Fix in JavaClassReloader: do not transfer compiler problems... - 0db3e311a7e7: Jan Vrany, 2013-09-22 19:32 +0100: - JavaMethodDeclarationNode - 7c283887f8c4: Jan Vrany, 2013-09-22 19:35 +0100: Fixes. - 08ef7d05987b: Jan Vrany, 2013-09-23 10:03 +0100: Update JavaLintService after rename of SmallSense::SyntaxHighlightingService... - ba792256b173: Jan Vrany, 2013-09-24 00:11 +0100: Added initial version of Jabber Client demo application. - 718fab8ca4cf: Jan Vrany, 2013-09-24 01:56 +0100: Do not load libj2pcks11.so/dll but do not bark when it's loaded. - d68db9271133: Jan Vrany, 2013-09-24 01:59 +0100: Removed examples/jabber from subprojects. - ddc68c69915a: Jan Vrany, 2013-09-24 12:45 +0100: Improvements for Java code navigation. - bf52a1e5701b: Jan Vrany, 2013-09-25 10:27 +0100: Support for implementors/senders menu. - 825b27484850: Jan Vrany, 2013-09-25 16:11 +0100: Added JavaPackage>>#compiler / #source methods... - f5f21ffdbfd9: Jan Vrany, 2013-09-26 09:11 +0100: More fixes for semi-modal navigation. - 18d2c83ecb3c: Jan Vrany, 2013-09-26 09:15 +0100: Added parse tree inspector tab to JavaSourceDocument to ease debugging. - 7638771efcbe: Jan Vrany, 2013-09-28 01:49 +0100: Fix in JavaClass>>source. - bdabb1cf8408: Jan Vrany, 2013-10-01 14:17 +0100: Some more fixes for semi-modal navigation. - 1b698ca5f0fd: Jan Vrany, 2013-10-01 23:36 +0100: More fixes for semi-modal navigation - 4756cc015954: Jan Vrany, 2013-10-02 00:59 +0100: Fix in JavaSourceDocument>>#inspector2TabParseTreeInspector - added missing notNil - 09774212044f: Jan Vrany, 2013-10-02 12:31 +0100: Another fix for semimodal navigation - d82859be4462: Marcel Hlopko, 2013-09-10 00:11 +0200: remove findResolvedStaticValue from JavaFieldRef2, not used anymore - 3d4c32e21475: Marcel Hlopko, 2013-09-10 00:14 +0200: add JavaClass>>canCacheReferences - fc8ef16dcb5c: Marcel Hlopko, 2013-09-12 23:43 +0200: add JavaClass>>hasMultipleVersions - fa96e547c9a5: Marcel Hlopko, 2013-09-12 23:44 +0200: set cleanCacheFlag in JavaFieldRef when multiple java class versions present - b097de8f18b1: Marcel Hlopko, 2013-09-12 23:47 +0200: merge heads - ad96da73c612: Marcel Hlopko, 2013-09-12 23:53 +0200: merge heads - 630363041ceb: Marcel Hlopko, 2013-09-13 22:11 +0200: tiny refactoring - e3092c16bcce: Marcel Hlopko, 2013-09-19 23:24 +0200: add cleanCacheFlag to JavaFieldRef2 - 7cdd959123dd: Marcel Hlopko, 2013-09-20 00:10 +0200: fix reloading tests (now they fail where expected) - c6f2c3b4a45b: Marcel Hlopko, 2013-09-22 21:12 +0200: merge heads - 2158564a90d1: Marcel Hlopko, 2013-10-01 22:58 +0200: temporarily add JavaConstantPool>>invalidateReferencesForClass - 6659925a80a4: Marcel Hlopko, 2013-10-01 23:06 +0200: tiny fix in reloading tests - 66f842986836: Marcel Hlopko, 2013-10-02 22:07 +0200: cleanup multiple Java class versions handling - 06599146279d: Marcel Hlopko, 2013-10-02 23:33 +0200: fix JavaClassReloader>>invalidate - 7d5ffec2f654: Marcel Hlopko, 2013-10-02 23:35 +0200: run ObjectMemory>>garbageCollect before and after each Java reloading test - 0216e0808608: Jan Vrany, 2013-10-03 15:30 +0100: Bugfix: Added missing JavaSocket>>timeout: - 241e36a125a9: Jan Vrany, 2013-10-03 17:36 +0100: Added java support code for stx:libjava/libtool - d4914ffbb0cf: Jan Vrany, 2013-10-03 20:07 +0100: Fix in JavaSourceHighlighter: save full tree in sourceIndex. - b25c8b9e886a: Jan Vrany, 2013-10-04 08:59 +0100: Highlighter cleanup, addes support for Groovy. - e6109bd7dfd2: Jan Vrany, 2013-10-04 12:22 +0100: Problem highlighting optimization/cleanup. - b530c3f48cd3: Jan Vrany, 2013-10-04 12:49 +0100: Changed display string for Java methods. - 6a57107d168a: Jan Vrany, 2013-10-04 17:02 +0100: Improvement in interop/java extensions. - 662204c99509: Jan Vrany, 2013-10-05 00:57 +0100: Oops, fixed interop for extensions defined on interfaces. - f3cfee185a72: Jan Vrany, 2013-10-05 01:01 +0100: Fix for GroovyEvaluator - cec025d0f359: Jan Vrany, 2013-10-05 01:11 +0100: Oops, fix for resolving. - 92ae91b29303: Jan Vrany, 2013-10-05 01:27 +0100: Added some common collection methods to java.util.Collection... - f0c1243363d8: Jan Vrany, 2013-10-05 01:50 +0100: Improvement in GroovyEvaluator: add receiver's instance variables to accessible variables. - 6936cde374d2: Jan Vrany, 2013-10-05 23:36 +0100: Fix in Java parser: set source level to 1.6 or 1.7 depending on running system. - 2fdee4f9e146: Jan Vrany, 2013-10-05 23:37 +0100: Added Java files required by interop tests. - b2fa940b8184: Jan Vrany, 2013-10-06 00:01 +0100: Fixed tests JavaFieldRefTests>>testCorrectResolving - 24e508459735: Jan Vrany, 2013-10-06 00:03 +0100: Merged 2fdee4f9e146 (tools support and fixes) and 7d5ffec2f654 (multivers fixes) - 62c767616a13: Jan Vrany, 2013-10-06 22:37 +0100: Fixed stupid bug in JavaFieldRef2 (did not correctly set type to R_DOUBLE for double fields) - b9c510a2234e: Jan Vrany, 2013-10-06 22:39 +0100: Merged 62c767616a13 and 24e508459735 - ba98473322b9: Jan Vrany, 2013-10-07 11:06 +0100: Fix in JavaToolbox>>#displayStringForSelector:in:withClassName: - 43370b378bf9: Jan Vrany, 2013-10-07 11:27 +0100: Added lost extension MessageSend>>navigateToUsing: - c4bd856eeb26: Jan Vrany, 2013-10-07 11:29 +0100: Oops, fixed MessageSend>>navigateToUsing: extension. Sigh... - 41d1af53f1eb: Jan Vrany, 2013-10-07 11:54 +0100: Fix in JavaVM>>standardThreadGroup - 46f6ef83cce6: Jan Vrany, 2013-10-07 19:16 +0100: More extensions for List - 13b4f59e3b0a: Jan Vrany, 2013-10-08 07:05 +0100: Fixes in parsing/highlighting. - e3b939ba5a5d: Jan Vrany, 2013-10-08 09:25 +0100: Fix in JavaSourceDocument>>initializeSourceRefsInMethods - match methods using their descriptors... - 7072f7fb65f6: Jan Vrany, 2013-10-08 09:28 +0100: Support for generic (parametrized) types in source indexer. - 8542f6311dcc: Jan Vrany, 2013-10-08 10:02 +0100: Merged 7072f7fb65f6 and e3b939ba5a5d - 7cd5e50a6c5a: Jan Vrany, 2013-10-08 11:13 +0100: Load java extension methods silently. - b00543ba4599: Jan Vrany, 2013-10-08 14:06 +0100: Added #first, #second, ... extensions to the List interface - 342fbc21cc23: Jan Vrany, 2013-10-08 14:08 +0100: Small fix in JavaMethod>>argAndVarNamesInContext: - 1c7b69664136: Jan Vrany, 2013-10-08 18:04 +0100: Fixes in JavaSourceHighlighter: - 681e5db578ad: Jan Vrany, 2013-10-08 19:16 +0100: Cleanup - remove old tools (parsers/parse nodes...) - 4b819ed57eeb: Jan Vrany, 2013-10-09 11:30 +0100: Oops, cleanup commit swept way to much. Restored Java extension containers for AST nodes. - 6d3bac6f72c7: Jan Vrany, 2013-10-09 23:37 +0100: Fix in stx.libjava.tools.text.Highligter - do not override parseClassBodyDeclarations()... - 7fb4ad65d417: Jan Vrany, 2013-10-09 23:38 +0100: build.xml files fixed. - 6fa1bcf9c997: Jan Vrany, 2013-10-10 00:08 +0100: JavaClass>>#name vs. #binaryName refactoring - 881eb22c2724: Jan Vrany, 2013-10-10 01:03 +0100: Bugfix in JavaClass>>nameSpaceName: all classes loaded by primordial, ext or system class loader should go to JAVA namespace. - 36f000314bcd: Jan Vrany, 2013-10-10 10:42 +0100: Fix in mixed exception handling. - 5157d3aea2c5: Jan Vrany, 2013-10-10 10:49 +0100: Merged 6fa1bcf9c997 (classname refactoring) and 7fb4ad65d417 (main) - 16c497edc69d: Jan Vrany, 2013-10-10 10:50 +0100: Merged 5157d3aea2c5 and 36f000314bcd (mixed exception handling fix) - d4ebf2a7c399: Jan Vrany, 2013-10-10 11:00 +0100: Merged 16c497edc69d and 881eb22c2724 (fix in JavaClass>>nameSpaceName - 5ea0697eef5f: Jan Vrany, 2013-10-10 11:25 +0100: Hack for old VM JavaClass>>binaryName:numStatic: - 96f3e2254489: Marcel Hlopko, 2013-10-08 19:02 +0200: remove JavaConstantPool#ConstantPools weak array, use JavaVM registry instead - 9e7d690fdc68: Marcel Hlopko, 2013-10-10 16:53 +0200: add blank requestRecompile & requestReload methods - 06e68d6098db: Jan Vrany, 2013-10-10 16:48 +0100: Added JavaObject>#instanceOf: - 90bcc3f41a0a: Jan Vrany, 2013-10-11 10:16 +0100: Merged 06e68d6098db and 9e7d690fdc68 (Marcel's fixes) - e4f0dcc42f4a: Jan Vrany, 2013-10-11 11:33 +0100: Fixed logging of monitor-related events - honour JavaVM.MonitorTrace flag. - 3680bdc3ef00: Jan Vrany, 2013-10-11 18:34 +0100: Merged 5ea0697eef5f and e4f0dcc42f4a (monitor trace fixes) - 76893aac6a7e: Marcel Hlopko, 2013-10-12 15:53 +0200: add JavaFieldRef>>reresolveForVersion: javaClass - 1ab75f8aa9de: Marcel Hlopko, 2013-10-12 18:10 +0200: small cleanup - ad2948878d56: Marcel Hlopko, 2013-10-12 18:13 +0200: fix stupid test and voila - hierarchy tests passing :) - 751597d0526a: Marcel Hlopko, 2013-10-12 21:01 +0200: do not migrate instances when type of the field is generalized - d030cf717ca2: Marcel Hlopko, 2013-10-12 21:03 +0200: temporarily ignore type inconsistencies on return values - 6d2d593cb29e: Marcel Hlopko, 2013-10-12 21:52 +0200: rename reresolveForVersion to resolveForVersion - cace5e1f84f3: Marcel Hlopko, 2013-10-13 12:04 +0200: experimenting with fieldRef resolving for particular class version - a31c3f2902d7: Marcel Hlopko, 2013-10-13 12:31 +0200: jv please revide, I probably broke something and this only fixes a symptom. - b9fadb7c9a1f: Marcel Hlopko, 2013-10-13 14:54 +0200: move resolveForVersion moved to JavaClassRef2 - a141e4ea784d: Marcel Hlopko, 2013-10-13 16:22 +0200: ensure JavaClassRef2>>resolveForVersionOf:or: chooses class specified by the reference - 83f90bb755e8: Marcel Hlopko, 2013-10-13 16:23 +0200: fix hierarchy reloading test so it is type safe. - 853c11fe1ce8: Marcel Hlopko, 2013-10-13 20:55 +0200: wire in requestRecompile sends - c62aa3987316: Marcel Hlopko, 2013-10-13 20:56 +0200: fix another field reloading tests - 36690c744edb: Marcel Hlopko, 2013-10-13 21:11 +0200: fix field visibility reloading text so surprising behavior is even more visible - and CALLING FOR HELP :) - 47083445aaf9: Jan Vrany, 2013-10-14 08:45 +0100: Merged 3680bdc3ef00 and 36690c744edb (Marcel's reloading fixes) - 095a83d77fe3: Jan Vrany, 2013-10-14 15:18 +0100: Added #creator for mixed exception handling. - ca49798e0a5d: Jan Vrany, 2013-10-14 19:11 +0100: More fixes for new naming scheme - cfd4ec1ffa22: Jan Vrany, 2013-10-14 23:17 +0100: Reverted back Marcel's change in JavaCompiler: pass plain Smalltalk string. - 7d803d440e44: Jan Vrany, 2013-10-14 23:18 +0100: Fix in JavaClassReloaderTests>>register: (send #binaryName instead of #name) - 10c0fcf2d304: Jan Vrany, 2013-10-14 23:29 +0100: Fix JavaClassReloader for new naming (#name -> #binaryName) - 3a85f55763e2: Jan Vrany, 2013-10-15 02:33 +0100: Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 1) - af4e7f1dd33e: Jan Vrany, 2013-10-15 02:34 +0100: Implemented JavaClassReloader>>#requestReload & #requestRecompile (part 3) - 192833bfdba1: Jan Vrany, 2013-10-15 15:30 +0100: Implemented stx.libjava.tools.environment.Environment.cleanup() - 3d942fb39104: Jan Vrany, 2013-10-15 15:31 +0100: Removed eclipse-runtime from stx:libjava/libs dependencies... - 7bd41088bd64: Jan Vrany, 2013-10-15 17:58 +0100: Fix in JavaCompiler>>#compile:register:notifying: (send #binaryName instead of #name) - c330ff3eb374: Jan Vrany, 2013-10-15 23:40 +0100: Fix in JavaClassReloader (recompilation) - 50b4916dd8d2: Jan Vrany, 2013-10-16 01:20 +0100: Fixes for Java method tracing/counting. - 916f3eedc505: Jan Vrany, 2013-10-16 09:09 +0100: Fix in JavaClassReloader - when updating class, also update attributes and annotations. - d92f88db7514: Jan Vrany, 2013-10-16 10:05 +0100: Improved JavaClassReader to read InnerClasses and MissingTypes attributes. - 1eaa3f10540b: Jan Vrany, 2013-10-16 10:48 +0100: Removed JavaSingleClassReloaderTests, tests merged in JavaClassReloaderTests. - 90724c4fa7f8: Jan Vrany, 2013-10-16 14:15 +0100: Fix to recompile erroneous classes upon reload. - 4b11c2089443: Jan Vrany, 2013-10-17 02:02 +0100: Removed obsolete tests... - b8187695c8cd: Jan Vrany, 2013-10-17 02:05 +0100: Added JavaMethod>>#interpretWithReceiver:arguments: - 948160ac3435: Jan Vrany, 2013-10-17 02:24 +0100: Fix in JavaCompiler>>#recompile: when recompiling, use class's original class loader. - 3ed529d88338: Jan Vrany, 2013-10-17 11:11 +0100: Recompilation fixed (avoid endless recursion) - 3084c43f20a1: Jan Vrany, 2013-10-18 16:54 +0100: Introduced GroovyScanner with support for Groovy-only tokens... - e62187297585: Jan Vrany, 2013-10-18 16:55 +0100: Fix in JavaSourceDocument - care for types with no method declarations - d8458cc3aabe: Jan Vrany, 2013-10-19 17:38 +0100: Make JavaVM>>#loadClassesIn: to work with .jar files as well. - 7bcde178eee7: Jan Vrany, 2013-10-20 00:07 +0100: Fix in JavaSourceHighlighter: do full highlighting for applications spawn from the debugger. - 5f7f5fca111a: Jan Vrany, 2013-10-21 08:31 +0100: Fix stx.libjava.tools.Source#getFileName(): always return a name to avoid NPE. - 83a135e3ef74: Jan Vrany, 2013-10-21 08:32 +0100: Call CompilationUnitDeclaration#analyseCde() to perform flow analysis... - a4c9642a6a67: Jan Vrany, 2013-10-21 10:39 +0100: Bugfix in JavaScannerBase>>:syntaxError:position:to: - raise ParseError. - dc03c9cd404a: Jan Vrany, 2013-10-22 00:07 +0100: Optimization in JavaLintService: cache language of the code view in an instvar. - 781c4bed22d0: Jan Vrany, 2013-10-22 03:44 +0100: Added JavaScannerBase>>#tokenName for compativility with smalltalk Scanner. - a284a338f355: Jan Vrany, 2013-10-22 14:57 +0100: Fixed a very. very nasty bug in wait(). - 64b02ee49807: Jan Vrany, 2013-10-22 18:50 +0100: Addes synchronization in JavaClass>>classInit. - 38bc44ad0f95: Jan Vrany, 2013-10-22 23:21 +0100: More fixes after Java class name refactoring. - 2f98edaf6aba: Jan Vrany, 2013-10-23 00:49 +0100: Removed JavaContext>>#argsAndVars - context inspector should show `this` as well. - 5b492b74975f: Jan Vrany, 2013-10-23 10:50 +0100: Bugfix in JavaMethod>>lineNumber (missing return) - a988e67e4dea: Jan Vrany, 2013-10-23 12:25 +0100: Fix in native java.lang.Class#forName0() - 96f3d8a73343: Jan Vrany, 2013-10-24 23:19 +0100: Fixed JavaLintService>>#unregister - break dependencies when unregistering - 60ed1d160ea5: Jan Vrany, 2013-10-26 17:56 +0100: Fix in JavaClassReloader - ignore non-Java methods when recompiling users of removed method. - 80bc02e62077: Jan Vrany, 2013-10-26 18:05 +0100: - JavaClassReloader - 272f9a99e3db: Jan Vrany, 2013-10-26 21:29 +0100: Fix in JavaSourceHighlighter::Indexer - allow for null variable binding. - 75e3fb8a615f: Jan Vrany, 2013-10-27 09:43 +0000: Fix in JavaSourceHighlighter>>doLexicalHighlightingOnly: care for window groups with no main view - 70df89fe0af0: Jan Vrany, 2013-10-27 10:28 +0000: Fix in JavaSourceDocument>>#initializeSourceRefsInMethods - 20d65bcdae80: Jan Vrany, 2013-10-28 10:42 +0000: Refactored JavaObject>>#doesNotUnderstand: refacttored to provide better UX in debugger - 1dbc311e1d74: Jan Vrany, 2013-10-28 11:29 +0000: Bugfix JavaClassReloader: handle missing/mis-spelled classes. - 894e894aa511: Jan Vrany, 2013-10-28 11:39 +0000: Fix in JavaClassReloader>>updateOldClass: update old method only if class of the method is the same. - edaa0c80646e: Marcel Hlopko, 2013-10-28 15:36 +0100: fix JavaBehavior>>hasMultipleVersions - 21a756977e9f: Marcel Hlopko, 2013-10-28 15:37 +0100: add Java reloading tests - fields in parent, GCing unused class versions - ec6e8825f168: Jan Vrany, 2013-10-31 07:53 -0300: Fix in stx.libjava.tools.text.Highlighter: do not try resolve fields when binding is null. - b7070e447ed0: Jan Vrany, 2013-11-05 17:52 +0000: Fixes for displaying local variables in debugger. - 89c09ec6e109: Jan Vrany, 2013-11-06 23:31 +0000: Fix for JavaTestsLoader (after JavaClass>>name refactoring) - 8005b7c3e51a: Jan Vrany, 2013-11-06 23:33 +0000: Fix in stx.libjava.tools.text.Highlighter: do not try resolve QualifiedNameReference when binding is null - 3a7d18c7fe40: Jan Vrany, 2013-11-06 23:40 +0000: Merged 8005b7c3e51a and 21a756977e9f - 3dd946439657: Jan Vrany, 2013-11-07 18:48 +0000: Fix in JavaClass>>#javaUnwrap: care for nil/null. - 503761e88b38: Jan Vrany, 2013-11-08 10:11 +0000: Fixes for Mauve tests. - 064418faa2e3: Jan Vrany, 2013-11-11 09:48 +0000: Another pass over Mauve tests. - 2fae1fd966be: Jan Vrany, 2013-11-11 17:27 +0000: Added JavaRelease>>system which uses default system Java installation. - f6e83cfb4d0f: Jan Vrany, 2013-11-11 21:20 +0000: Added natives required by OpenJDK 7, update 25. - 69560c0ea583: Jan Vrany, 2013-11-11 21:32 +0000: Oops, fix in JavaNativeMethodImpl_OpenJDK6>>invoke:receiver:arguments:context:constructor: - a38c23f77e42: Jan Vrany, 2013-11-11 22:05 +0000: Fixed native java.io.*FileSystem#createFileExclusively - 7d69859368db: Jan Vrany, 2013-11-11 22:33 +0000: Oops, fixed mispelled arg name in JavaNativeMethodImpl_OpenJDK6. - 1f4c3054998c: Jan Vrany, 2013-11-12 01:31 +0000: Native java.lang.Object#clone() refactored to use ACX_CLOENABLE flag. - ac252847cc04: Jan Vrany, 2013-11-12 02:14 +0000: Oops, fix in isCloneable - if ACX_CLONEABLE is not set, always check interfaces. - 3d8a63dbf6dd: Jan Vrany, 2013-11-12 11:17 +0000: Oops, fix for JavaClass>>isCloneable - handle subclasses of a class that implements Cloneable. - e634189c444e: Jan Vrany, 2013-11-13 11:13 +0000: Another pass over java.io.* natives. Fixes for OpenJDK 7. - e2fc5ead5542: Jan Vrany, 2013-11-14 01:25 +0000: Fix in Float/LargeInteger>>javaBox: - d4ef0fe45599: Jan Vrany, 2013-11-14 12:06 +0000: Fix in JUnitTestCaseProxy>>#testSelectors. - 36e0682339ed: Jan Vrany, 2013-11-14 23:24 +0000: Fixed natives to convert float/double to int/long bits and other way around... - 85ccd41f883c: Jan Vrany, 2013-11-14 14:50 -0800: Fixes and (void) natives for shared-memory JDI transport. - 9fd2ea0570fe: Jan Vrany, 2013-11-15 11:01 +0000: Merged 36e0682339ed and 85ccd41f883c - 0be6bc618029: Jan Vrany, 2013-11-15 15:17 +0000: When accessing Java source in .har, try uncompress it using ZipArchive first... - 0479c114bcc0: Jan Vrany, 2013-11-15 22:39 +0000: Merged 9fd2ea0570fe and 0be6bc618029 - a77c05c8cd68: Jan Vrany, 2013-11-15 23:00 +0000: Fix in JavaVM for exception debugging. - 223fb480e1fb: Jan Vrany, 2013-11-15 23:01 +0000: Fix for OpenJDK7 native _java_util_zip_ZipFile_getEntryBytes:_: _: _: - b8295c72dd53: Jan Vrany, 2013-11-18 14:00 +0000: Added tests for FREM/DREM and ?AND and ?OR. - 08a14f3553a2: Jan Vrany, 2013-11-18 14:53 +0000: Fix in JavaVM>>#unpark: (typo) - b919ffd3d2a6: Jan Vrany, 2013-11-18 22:08 +0000: Fixed classpath for stx:libjava/libs eclipse project (removed obsolete libs) - 8c690545a18d: Jan Vrany, 2013-11-18 23:04 +0000: Fix in JavaCodeLibrary>>classPathOn: - allow for sources-only libraries. - e215dba1f0fb: Jan Vrany, 2013-11-18 23:07 +0000: Fix in JavaClassReader for concurrent access to zipa archives. - 54787b966373: Jan Vrany, 2013-11-18 23:08 +0000: Added Java code bundle with Tomcat sources to ease debugging. - 7c556b58cd4b: Jan Vrany, 2013-11-19 00:44 +0000: Fixes in ApacheTomcat6 (misspelled class name) + build files regenerated - 969166ba9c7c: Jan Vrany, 2013-11-19 00:45 +0000: Merged 7c556b58cd4b and 08a14f3553a2 - 1fc9ae49376d: Jan Vrany, 2013-11-19 00:46 +0000: Merged 969166ba9c7c and 54787b966373 - 7a439bd8ae5b: Jan Vrany, 2013-11-19 10:01 +0000: Added JavaCompilerForSmalltalkExtensionsOnly for environments without full JavaCompiler... - 65d127f0c9c1: Jan Vrany, 2013-11-19 10:20 +0000: Fix in interop - make sure the class is initialized when invoking static method. - c464794e5fa2: Jan Vrany, 2013-11-19 11:29 +0000: Added signal handlers to ApacheTomcat6 startup class. - 3f4853b3c30d: Jan Vrany, 2013-11-20 10:00 +0000: Calls to fdlim functions embedded into natives, JavaMathSupport removed. - 451954b79f93: Jan Vrany, 2013-11-20 10:42 +0000: Fixes for Tomcat 6 startup. - c342efcd1bcb: Jan Vrany, 2013-11-20 16:13 +0000: Oops, added missing class JavaCompilerForSmalltalkExtensionsOnly. - c39cbf09ea3d: Jan Vrany, 2013-11-20 16:40 +0000: Fixes for Java reflection on Smalltalk classes. - cc9cf6c073bd: Jan Vrany, 2013-11-20 16:41 +0000: Merged c342efcd1bcb and c39cbf09ea3d - d0b831020baa: Jan Vrany, 2013-11-20 17:31 +0000: Fixes for Tomcat example: allow Workspace WEBAPP to run without JavaScript loaded. - 98971af93e31: Jan Vrany, 2013-11-20 23:45 +0000: Fix in JavaVM>>#initializeSystemPropertiesInto: be careful when initializing stx.libjava.tests... - 5f8f0ac505a5: Jan Vrany, 2013-11-22 10:33 +0000: Fix in JavaClassReader>>#readClass:from:ignoring: (fix wrong code for zar refcounting) - e5fc3aaad7a2: Jan Vrany, 2013-11-23 10:19 +0000: Build support files for tomcat6 laucnher fixed - af30789878ce: Jan Vrany, 2013-11-26 21:19 +0000: Temporary class loading race-condition workaround. - 448a12efa893: Jan Vrany, 2013-11-26 21:21 +0000: Fix in Mauve DoubleTest. - ec1be126d72e: Jan Vrany, 2013-11-26 23:04 +0000: Fixes in Java source highlighting - boot Java if not already. - 590fd4bf22a8: Jan Vrany, 2013-11-27 00:29 +0000: Hack in JavaSourceHighlighter for JImport expecco plugin. - ff6465e92d95: Jan Vrany, 2013-12-03 00:17 +0000: Flush JavaClassRegistry's notifier when flushing classes. - 7c542571c7c1: Jan Vrany, 2013-12-03 00:37 +0000: Added interop tests for constructors. - f5b13d9b249b: Jan Vrany, 2013-12-03 01:14 +0000: Added all stubs for native methods from recent OpenJDK 6. - 55692310d4e6: Jan Vrany, 2013-12-06 22:10 +0000: Fix in JavaVM>>monitorEnter:in: inflate thinlock using #getMonitor. - 17be352f0130: Jan Vrany, 2013-12-08 00:41 +0000: Added lockWord to JavaBehavior to enable thinlocking for static methods and resolver. - 02b58c7079ac: Jan Vrany, 2013-12-08 22:36 +0000: Added JavaObject>>synchronized: and JavaClass>>synchronized: - bbd626006ab0: Jan Vrany, 2013-12-09 23:52 +0000: Access to ZipEntryCache synchronized to avoid races. - 3e837849ce3e: Jan Vrany, 2013-12-10 10:46 +0000: Bugfix: fixed premature freeing of zip entry causing zip entry. - d133d35e293b: Jan Vrany, 2013-12-10 22:33 +0000: Class loading refactoring (part 1) - 86e181f74199: Jan Vrany, 2013-12-10 23:04 +0000: Class loading refactoring (part 2) - 83d32dc4fcea: Jan Vrany, 2013-12-10 23:20 +0000: Class loading refactoring (part 3) - 2397022c7057: Jan Vrany, 2013-12-12 15:30 +0000: Bugfix in JavaRelease::OracleJDK7>>validateJavaHome2: - 7c3b2a89f173: Jan Vrany, 2013-12-18 00:02 +0100: Use system class loader when loading class for JavaClassAccessor. - bac7022ca26a: Jan Vrany, 2013-12-18 12:03 +0100: Merged 7c3b2a89f173 and 80a1a085a982 (branch performance-optimizations) - afd174546057: Jan Vrany, 2013-12-18 14:52 +0100: Post-merge fixes. - 8ffaaa45f964: Jan Vrany, 2013-12-23 22:49 +0100: Fix in Java>>flushClasses: do not use Smalltalk>>removeKey: - d4963adcb114: Jan Vrany, 2013-12-23 22:59 +0100: Added JavaClass>>synchronized: that uses thinlocks. - 38f0943c97a4: Jan Vrany, 2013-12-23 23:14 +0100: Fix in JavaRef2>>#resolve: resolving is now synchronized on class. - c9408352a572: Jan Vrany, 2014-01-07 13:44 +0100: Fix in JavaClass>>#perform:onReceiver:from:ifNotFound: pass selector/sender when evaluatinh method using Method>>valueWith:... - a44d1fa11204: Jan Vrany, 2014-01-14 09:49 +0000: Fix in JavaSourceHighlighter>>#formatClassDefinition:in: - care for formatting class side... - 3d6c08acf4cd: Jan Vrany, 2014-01-18 11:43 +0000: Fixed native #_sun_reflect_Reflection_getCallerClass:_: to work with new JIT compilation scheme. - 64ec2085e797: Jan Vrany, 2014-01-18 21:42 +0000: Better printOn: / printString: fpr JavaMethodRef2 - 36b5b06398b5: Jan Vrany, 2014-01-18 21:44 +0000: Fix in ByteArray>>_CHECKCAST:/_INSTANCEOF: (typo/copy paste error) - ec1f7113fac0: Jan Vrany, 2014-01-18 21:47 +0000: Added _INVOKE*R: methods used by new JIT compiler. - a384a02381c0: Jan Vrany, 2014-01-20 14:04 +0000: Update JavaLookup to work with new JIT-compilation scheme... - c3005d991df7: Jan Vrany, 2014-01-20 14:06 +0000: JavaRef2>>invalidate/invalidateForClass: moved from experiments to stx:libjava - f44a7499454b: Jan Vrany, 2014-01-20 15:11 +0000: Added _GETFIELD_R:_:/ _GETSTATIC_R: / _PUTFIELD_R:_:_: / _PUTSTATIC_R:_: (used by new JIT code) - c69ab7aefc53: Jan Vrany, 2014-01-20 23:08 +0000: Fixed _GETSTATIC_R: / _PUTSTATIC_R: - initialize class if not already. - 604d4f079e66: Jan Vrany, 2014-01-21 11:28 +0000: Fix in JavaClass>>basicNew initialize class if not already. - 5c86c719a79b: Jan Vrany, 2014-01-21 14:44 +0000: Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk. - 673487527490: Jan Vrany, 2014-01-22 15:02 +0000: Fix in JUnitTestCaseProxy>>performTest. - 3947e2e8f8d9: Jan Vrany, 2014-01-22 15:28 +0000: Added new native JavaNativeMethodImpl_OpenJDK6>>#_java_lang_Class_getDeclaringClass0: - 3f59f05b601e: Jan Vrany, 2014-01-23 16:16 +0000: Added tests from GETFIELD/PUTFIELD and INVOKE*. - 369b56b7f766: Jan Vrany, 2014-01-23 23:10 +0000: Merged 3f59f05b601e and 64ec2085e797 - 6b521f99c43b: Jan Vrany, 2014-01-27 14:00 +0000: Moved JavaCompilerTests to stx:libtool. - 1badaa4fa024: Jan Vrany, 2014-01-28 11:23 +0000: Added support for new MULTIANEWARRAY implementation. - ed6c057accab: Jan Vrany, 2014-01-28 11:23 +0000: Added tests for MULTIANEWARRAY instruction - 593add70a2cd: Jan Vrany, 2014-01-28 14:43 +0000: Added _MULTIANEWARRAY* methods to suppott new MULTIANEWARRAY implementation. - 21011804a910: Jan Vrany, 2014-01-29 17:27 +0000: Fixed _GETFIELD_R: / _PUTFIELD_R: to throw NPE when an object is nil. - c45e84ee0baf: Jan Vrany, 2014-01-30 23:40 +0000: Fix in method ref: initialize class if not already, removed breakpoints... - 732f9db2a195: Jan Vrany, 2014-01-31 09:19 +0000: Cleanup & refactoring of constant pool references (JavaRef2 hierarchy) - ed8cd8e5a16d: Jan Vrany, 2014-01-31 12:41 +0000: Added JavaBooleanArray to represent boolean[]. - 53644e5c7d2b: Jan Vrany, 2014-01-31 17:17 +0000: Rename __ACC_BREAKPNT to __ACX_BREAKPNT, there's no such constant in JVM spec. - 4f0cd5c93d1b: Jan Vrany, 2014-02-03 09:25 +0000: Fixed some java.io.WinNT/Win32FileSystem natives. - 7472dbd72ef7: Jan Vrany, 2014-02-05 09:08 +0000: Fixed native _java_net_Inet4AddressImpl_lookupAllHostAddr:_: - 7702920fa03a: Jan Vrany, 2014-02-05 14:01 +0100: Added tests for reflection on arrays. More tests for shift instructions. - 220f5d25933a: Jan Vrany, 2014-02-05 15:13 +0100: Merged 7702920fa03a and 1badaa4fa024 - fe87c228905c: Jan Vrany, 2014-02-05 15:22 +0100: Merged 220f5d25933a and 7472dbd72ef7 - 08d798b4ef80: Jan Vrany, 2014-02-05 16:26 +0100: Added run-all.rb scrip to run all tests on several different configurations - a80a2d7fc0e1: Jan Vrany, 2014-02-05 16:28 +0100: Added XMPP Chat example (shown at Smalltalks 2013) - c1ec15d94457: Marcel Hlopko, 2014-01-25 21:35 +0100: fix javaHome for oracle-7 - c9f0019485ff: Marcel Hlopko, 2014-01-25 21:47 +0100: get rid of old mh breakpoint - 659fb25645b0: Marcel Hlopko, 2014-01-26 17:15 +0100: fix constant pool content tests - 394676d5c68e: Marcel Hlopko, 2013-12-12 16:42 +0100: fix typo in JavaRelease - c1c82d3baae7: Jan Vrany, 2014-02-06 10:38 +0100: Use Ant+Ivy instead of Maven to download libraries in stx:libjava/libs - 8fcf6cde056e: Jan Vrany, 2014-02-06 10:45 +0100: Merged c1c82d3baae7 and 394676d5c68e - 414e6567b574: Jan Vrany, 2014-02-06 10:48 +0100: Merged 8fcf6cde056e and 659fb25645b0 - 024e71f1142e: Jan Vrany, 2014-02-06 11:10 +0100: Merged Claus's Java release definition for OS X into JavaRelease::AppleJDK6. - 8b3f1f16a660: Jan Vrany, 2014-02-06 14:06 +0100: Fix in JavaRelease::AppleJDK6 - removed JavaVMData pool - 7ff48afbef00: Jan Vrany, 2014-02-07 09:07 +0100: Fixes in natives for non-TRADITIONAL_STACK machines. - c04668cd040d: Jan Vrany, 2014-02-07 09:49 +0100: Natives cleaned up a bit. - e7c286435bfe: Jan Vrany, 2014-02-11 16:29 +0000: Fixed tests'run-all.rb to run under Windows as well. - 39a55d1baeff: Jan Vrany, 2014-02-11 20:21 +0000: Yet another cleanup of java.io.FileSystem mess. - 506844f3740e: Jan Vrany, 2014-02-11 21:52 +0000: Reduced dimensions on MULTIANEWARRAY#test_incomplete_02 to avoid 2-pass compressing GC. - 31dc5184bf9a: Jan Vrany, 2014-02-12 10:30 +0000: Workaround in JavaRelease::OpenJDK7>>searchForSourcePath for Debian boxes. - 93a610491bf8: Jan Vrany, 2014-02-12 11:10 +0000: Fixes in java.io,Win32FileSystem - added listDrives0() native. - e2137bf62524: Jan Vrany, 2014-02-12 12:39 +0000: Fix in JUnit/TestletTestCaseProxy. - 2efe1601724c: Jan Vrany, 2014-02-12 15:37 +0000: Merged 31dc5184bf9a and e2137bf62524 - aed7115ce6e8: Jan Vrany, 2014-02-12 20:47 +0000: Fix in JavaRelease::OpenJDK6>>searchForSourcePath. - 3bc512cb6649: Jan Vrany, 2014-02-12 21:28 +0000: Branch development merged into default. - f17a68612f53: Jan Vrany, 2014-02-13 08:54 +0000: Fake-merged bdf545540de0 into 3bc512cb6649 to get rid of second head. - 5f69bed172fe: Jan Vrany, 2014-02-17 15:22 +0100: Fix in JavaRelease::AppleJDK6 - should be available only on OS X. - 590aa6c3cb24: Jan Vrany, 2014-02-19 10:21 +0000: Improvements and fixes in GroovyEvaluator. - b5001e1fb06c: Jan Vrany, 2014-02-20 22:54 +0000: More compatibility extensions for java.util.List - a7a3fdc9d6b7: Jan Vrany, 2014-02-25 17:01 +0000: Fixes in java.util.List>>indexOf: & identityIndexOf: - 36a4e9ab4d00: Jan Vrany, 2014-03-04 13:36 +0000: Skip all workspace tests in GroovyEvaluatorTests when there's no display connection... - 66e0970661db: Jan Vrany, 2014-03-04 17:03 +0000: Removed #preRequisites, build files regenerated. - 366b8f64dc45: Jan Vrany, 2014-03-07 00:20 +0000: Eclipse projects updated. - 31ddc9aa291d: Jan Vrany, 2014-03-18 11:32 +0100: Fix in JavaRelease>>system for UNIX-like systems. - e924b175ca61: Jan Vrany, 2014-03-19 11:12 +0000: Added ThreadStopTests to tests execution abortion. - ff90519ce3ac: Jan Vrany, 2014-03-19 11:48 +0000: Interop tests refactoring. - 7a326f9f8aad: Jan Vrany, 2014-03-19 17:44 +0000: Bug fix in interop with respect to overloaded methods in subclasses. - 40beb6dad64f: Jan Vrany, 2014-03-20 14:13 +0000: Eclipse projects cleanup - b25792751803: Tomáš Heger, 2014-03-19 05:32 +0100: First implementation of ClassFileScanner. - 135c3202c5b7: Tomáš Heger, 2014-03-19 23:43 +0100: ClassFileScanner fixed, tests added. - 08238e0175ae: Tomáš Heger, 2014-03-20 10:52 +0100: Major version number verifying added. - f08a8f57d43b: Jan Vrany, 2014-03-20 14:39 +0000: Merged 08238e0175ae and 40beb6dad64f (Tom's ClassFileScanner) - 3ac5c037b13d: Jan Vrany, 2014-03-20 14:43 +0000: Fixed stx.libjava.tools.compiler.CompilerError initialization problem. - 74535b57b370: Jan Vrany, 2014-03-21 13:25 +0000: Make internal JVM processes to form a new provess group on Smalltalk VM level. - 033e56844dc9: Jan Vrany, 2014-03-25 15:36 +0000: Fixes to for JDI debugger. - d23f94ac7fd5: Jan Vrany, 2014-03-31 12:05 +0200: Made non-ASCII literals encoded using \uXXXX rather than using direct UTF8 in .java sources. - 36df3896ac57: Jan Vrany, 2014-04-01 13:41 +0200: Fixed JavaReleaser>>JDK6/JDK7 - eae56960a120: Jan Vrany, 2014-04-01 14:40 +0200: Oops, fixed syntax error (missing dot) - 642c961ea130: Jan Vrany, 2014-04-02 16:19 +0200: Fix in JavaRelease::SunJDK122. - 7e5ad1b76629: Jan Vrany, 2014-04-03 12:38 +0200: Initial stubs for Java 8 - 10b7a8f2e23c: Jan Vrany, 2014-04-03 21:00 +0200: Change JavaRelease to use output of `java -version` when validating Java installation directory. - fd92dea7b142: Jan Vrany, 2014-04-04 13:10 +0200: Bugfix in JavaVM>>initializeVM: do not deadlock caller if VM initialization failed. - cec6d766280e: Jan Vrany, 2014-04-08 09:34 +0200: Workaround for JAVA NameSpace (from Java bridge) vs JAVA JavaPackage (from STX:LIBJAVA) - ccf0bb9b983b: Jan Vrany, 2014-04-08 14:59 +0200: JavaRelease>>inDirectory refactored to not hard-code relative paths to java executable within JRE/JDK. - 824804a0ae03: Jan Vrany, 2014-04-08 16:28 +0200: Added extension java.util.Collection#anElement - f252b6759c9e: Jan Vrany, 2014-04-08 19:16 +0200: Fixed DNU in JavaReleaseTests - d64f0b5cc383: Jan Vrany, 2014-04-09 08:37 +0200: Oops, fixed condition in skipIf: in JavaReleaseTests - a3f6e540a232: Jan Vrany, 2014-04-09 10:00 +0200: Keep source along with parse tree index. - 3ac1f611b373: Jan Vrany, 2014-04-09 14:30 +0200: Fixes in GroovyLanguage - fcbadfecc4d7: Jan Vrany, 2014-04-09 17:14 +0200: Updated Groovy to 2.1.1. Download Groovy and JUnit using IVY. - dd7f7a54107b: Jan Vrany, 2014-04-09 17:29 +0200: .hgignore improved - 8c0339f8c175: Jan Vrany, 2014-04-09 18:41 +0200: Fixes for groovy. - 4bbacafb9592: Jan Vrany, 2014-04-09 18:54 +0200: Renamed JavaClassRegistry>>classesDo: to allClassesDo: - a65f7a72b3bf: Jan Vrany, 2014-04-09 21:53 +0200: JavaCodeBundle>>standardPackageBundleFor: improved - a29506c02dcc: Jan Vrany, 2014-04-10 09:04 +0200: Minor fixes in start/stop position for local/type declaration nodes. - 3f6f3b935c17: Jan Vrany, 2014-04-10 10:10 +0200: Fixed unimplemented native java.lang.reflect.Array.get() - 7145c825db68: Jan Vrany, 2014-04-10 15:39 +0200: More work on java.lang.reflect.Array natives. - f22d5febda61: Jan Vrany, 2014-04-11 18:20 +0200: Introduced a JavaClassEnvironment - an abstract namespace-like class to keep Java classes. - 7c91a4227264: Tomáš Heger, 2014-04-04 11:38 +0200: Added the ".metadata" directory. - a6feb6da5718: Tomáš Heger, 2014-04-14 11:34 +0200: Initial implementation of a dumper of IBinaryType objects. - 92d7ca788f14: Tomáš Heger, 2014-04-14 11:35 +0200: Initial (and incomplete) implementation of Reflective* classes. - 642396977525: Tomáš Heger, 2014-04-14 12:09 +0200: Various fixes (including Honza's) regarding Reflective* classes. - a60e7d264dc2: Tomáš Heger, 2014-04-14 13:27 +0200: Unused code commented out. - db83cc770144: Tomáš Heger, 2014-04-14 13:37 +0200: Returning correct names fixed. - 7cb0df30d317: Tomáš Heger, 2014-04-14 14:38 +0200: test_06 fixed - f44978fc1abd: Jan Vrany, 2014-04-15 13:51 +0200: Added #hash and #= to JavaCodeLibraryOrBundle. - 718746a2ac28: Claus Gittinger, 2014-04-13 16:53 +0200: - JavaRelease - 76a10700c053: Claus Gittinger, 2014-04-15 01:04 +0200: - JavaObject - aa8989bbd454: Claus Gittinger, 2014-04-15 01:08 +0200: - JavaNativeMethodImpl_OpenJDK6 - eba90d210e65: Claus Gittinger, 2014-04-15 01:21 +0200: - JavaNativeMethodImpl_OpenJDK6 - 375c8ea59bad: Jan Vrany, 2014-04-15 19:01 +0200: Merged f44978fc1abd and eba90d210e65 - df5a76fdd3a6: Jan Vrany, 2014-04-15 22:22 +0200: Changed display string of JavaRelease. - e35f2fac0337: Jan Vrany, 2014-04-16 08:59 +0200: Improved JavaCodeBundle>>standardPackageBundleFor: to support layout with separated tests... - 4fbf1e915fdd: Claus Gittinger, 2014-04-16 14:28 +0200: - GroovyEvaluator - 51c43574dc90: Claus Gittinger, 2014-04-16 15:57 +0200: - JavaRelease - 99f84ab46898: Claus Gittinger, 2014-04-16 18:27 +0200: - JavaNativeMethodImpl_OpenJDK6 - ccde6af7278c: Claus Gittinger, 2014-04-16 18:53 +0200: JavaContext: - 88ad88fdeca5: Jan Vrany, 2014-04-16 19:32 +0200: Merged df5a76fdd3a6 and ccde6af7278c - 54211576c9ce: Claus Gittinger, 2014-04-16 20:14 +0200: JavaClassRef2: - 08ec1ceb01e7: Claus Gittinger, 2014-04-16 21:17 +0200: JavaLanguage: - 78e1d19eb584: Jan Vrany, 2014-04-17 07:45 +0200: Fixed JavaCompiler>>synchronizationSemaphore. - 9d79b824c1ad: Claus Gittinger, 2014-04-17 10:13 +0200: JavaRelease: - 7eef27e37553: Jan Vrany, 2014-04-17 11:56 +0200: Fixed path to Groovy jars in ant build files. - 35b8520c46f2: Jan Vrany, 2014-04-17 12:53 +0200: Oops, more fixes to ant build files. - 7bb1f4106033: Jan Vrany, 2014-04-17 16:20 +0200: Cherry-picked changes from 35b8520c46f2. - c49c94053695: Jan Vrany, 2014-04-17 16:34 +0200: Moved CompilerAdapterTests.java to tools/java/src-tests. - 5d7c92ab734b: Jan Vrany, 2014-04-17 20:16 +0200: Fixed JavaRelease class>>system - 388adc0de925: Jan Vrany, 2014-04-22 16:32 +0200: Fix in JavaClassEnvironment>>at:ifAbsent: - b1192955f5a3: Jan Vrany, 2014-04-22 22:37 +0200: Fixed native _java_lang_ClassLoader_defineClass1: _: _: _: _: _: _: _: - 158c061202f3: Jan Vrany, 2014-04-22 22:41 +0200: Merged 388adc0de925 and b1192955f5a3 - c37c50e0aa5a: Jan Vrany, 2014-04-27 21:00 +0100: Fix in containsMethodsAnnotatedWith: - do not compare binary names, compare superclasses - ebf6ad1545af: Claus Gittinger, 2014-04-30 20:29 +0200: source code access fixed for apple: - 19a2b75907ce: Claus Gittinger, 2014-04-30 22:02 +0200: new native - cf2d8949d5a5: Jan Vrany, 2014-05-05 10:10 +0100: Better coding style of JavaClass/JavaBehaviour>>setInterfaces: - 446b34b9a386: Jan Vrany, 2014-05-12 17:34 +0100: Fixed GroovyScanner w.r.t ''' multiline comments. - c0d467b37565: Jan Vrany, 2014-05-13 11:49 +0100: Changed supeclass of JavaClassEnvironment to SystemEnvironment. - a7d69709920f: Jan Vrany, 2014-05-14 00:07 +0100: Use lexical highlighting when JVM is not booted. - c4709bcca97a: Jan Vrany, 2014-05-14 16:36 +0100: Bugfix in JavaScanner - correctly handle dot a the end of input. - 7cc116da75e8: Jan Vrany, 2014-05-18 13:11 +0100: Added 'def' to keywords. - e53888146940: Jan Vrany, 2014-05-20 17:57 +0100: Added support for new constants used bu JSR 272 Invoke dynamic. - d1d41053a1c8: Jan Vrany, 2014-05-21 11:22 +0100: Mark all classes in stx:libjava/benchmark as obsolete. - 6d8f66f1ff39: Jan Vrany, 2014-05-21 16:56 +0100: [Class reader optimization 1/3]: Added JavaBenchmarkClassReader - 2c747ca6078d: Jan Vrany, 2014-05-21 17:10 +0100: [JavaClassReader optimization 2/3]: add methods at once instead of individually. - 3119ced5d03c: Jan Vrany, 2014-05-21 21:08 +0100: [JavaClassReader optimization 3/3]: optimize JavaMethod>>setName:descriptor: - b442904eec25: Jan Vrany, 2014-05-23 22:26 +0100: Moved Context>>arg1Index to stx:libbasic. - 1f8c991bc1d2: Jan Vrany, 2014-05-27 12:49 +0100: Variaous optimizations in string manipulatios to speed up class reading. - 3cdcaf15c918: Jan Vrany, 2014-05-27 13:18 +0100: Merged 1f8c991bc1d2 and b442904eec25 - 819926f83b48: Tomáš Heger, 2014-04-14 15:46 +0200: Occurences of "assertTrue(false)" replaced by "fail()" in the tests. Useless catch block removed from test_06. - 3e12320cb6c7: Tomáš Heger, 2014-05-22 02:01 +0200: Fields, annotations and tag bits implemented. - 54d901dba381: Tomáš Heger, 2014-05-22 03:25 +0200: Generic signature dumping fixed (wrong use of the delimiter). - 84a135e483a6: Tomáš Heger, 2014-05-27 16:34 +0200: Added testcase for the ReflectiveField.getConstant() method. - d73feaf2aecc: Tomáš Heger, 2014-05-27 16:37 +0200: ReflectiveField.getConstant() implemented. It's not working yet though - any attempt to get value of a field throws IllegalAccessException. - 6451ff1e43cf: Tomáš Heger, 2014-05-27 16:55 +0200: Anonymous inner classes aren't being returned by the ReflectiveType.getMemberTypes() method anymore. - 2720184478b7: Jan Vrany, 2014-05-30 08:55 +0100: Fix in ReflectiveField.getConstant() - make field accessible if it is not. - e4470b7efc3b: Jan Vrany, 2014-05-30 09:03 +0100: Made ReflectiveField.getConstant() return always NotAConstant. - b63dbae22813: Jan Vrany, 2014-05-30 09:04 +0100: Moved CompilerAdapterTests to from src to src-tests - ba69147aea97: Jan Vrany, 2014-06-02 14:54 +0100: Better error message for VM-thrown ArrayStoreException. - e4b35ecfc645: Jan Vrany, 2014-06-02 14:58 +0100: Oops. remove Context>>arg1Index from extensions list. - c09dc2c6937b: Jan Vrany, 2014-06-02 16:38 +0200: Fix in JavaRelease - correctly detect OpenJDK6 on Linux. - ffe44966a226: Jan Vrany, 2014-06-02 15:56 +0100: Merged e4b35ecfc645 and c09dc2c6937b - 546aadb1fee1: Jan Vrany, 2014-06-02 18:30 +0200: Implemented sun.net.PortConfig.getLower0/getHigher0 natives. - b4fa505f93c5: Jan Vrany, 2014-06-04 09:52 +0100: Increated timeout for JUnit/Testlet tests. - 93cf25f66530: Jan Vrany, 2014-06-04 10:30 +0100: Do not create JavaClassAccessor for `JAVA java lang Object`-style class references. - cc0ea0656186: Jan Vrany, 2014-06-12 12:12 +0100: Fixed bug #77: Ignore unhandled ThreadDeath exceptions. - c1a47c6796fc: Jan Vrany, 2014-06-12 16:07 +0100: Increated per-process stack size limit for Groocy 2.x.x - 81791eb890eb: Jan Vrany, 2014-06-13 08:43 +0100: Bugfix in GroovyEvaluator: properly wrap primitive values. - 553b1c08b6b1: Jan Vrany, 2014-06-13 15:46 +0100: Bugfix in JavaLintService>>unregister: call super unregister at the end of the unregister method. - 012cc8eddb86: Jan Vrany, 2014-06-25 11:03 +0100: Use Semaphore>>waitWithTimeoutMs:state: instead of copy'paste version of waitWithTimeoutMs: - 4eaeba9fa910: Jan Vrany, 2014-06-25 13:58 +0100: Java source highlughter refactoring. - 72765a504e7c: Tomáš Heger, 2014-06-03 22:13 +0200: Removed unused imports. - a0139792a8cd: Tomáš Heger, 2014-06-03 22:17 +0200: Methods usable to actually dump IBinaryTypes added to IBinaryDumper -> it's executable now. Output directory is expected as the first argument, names of the classes to be dumped as the following arguments. - f25781926cca: Tomáš Heger, 2014-06-24 00:53 +0200: IBinaryDumper modified so it can dump classes from jar files. It accepts an arbitrary number of parameters - the first one is supposed to be a directory used for output and the rest are supposed to be class names and/or jar files. - e7b9ceda9923: Jan Vrany, 2014-07-02 17:53 +0100: Make ReflectiveType#getSuperclassName() to return java.lang.Object for interfaces. - fb9e5936daec: Jan Vrany, 2014-07-02 17:58 +0100: Do not dump properties known to differ for ReflectiveType and ClassReader by default. - 490a1b914f93: Jan Vrany, 2014-07-02 23:09 +0100: Renamed IBinaryDumper to BinaryDumper as I prefix denotes interface. - ade0060d3c12: Jan Vrany, 2014-07-08 12:55 +0100: Added tag expecco_2_7_0 for changeset 4eaeba9fa910 - ee329fef15db: Jan Vrany, 2014-07-10 13:54 +0100: Merged 490a1b914f93 and e35f2fac0337 - 2f2937ea3f03: Jan Vrany, 2014-07-10 16:48 +0100: Merged ade0060d3c12 and ee329fef15db - defac61e541c: Jan Vrany, 2014-07-07 23:48 +0100: stx.libjava.tools.environment.Environment.java cleanup. - 4dbc3b22d078: Jan Vrany, 2014-07-08 00:16 +0100: Fix in Environment#isPackage() - conservatively return true. - 04c5d3e67c13: Jan Vrany, 2014-07-11 16:42 +0100: Fixed ReflectiveMethod#getGenericSignature() for constructors. - e683134b3617: Jan Vrany, 2014-07-11 16:44 +0100: BinaryDumper improvements - 3aa14b90dacd: Jan Vrany, 2014-07-15 13:07 +0100: Removed code for flushing shared compiler Environment. - f041babfda85: Claus Gittinger, 2014-05-09 15:06 +0200: fixed apple-jdk searchForSourcePath (should return strings, - 7f36435f79c9: Claus Gittinger, 2014-05-29 13:12 +0200: comment characters - 36bab0a3c02b: Claus Gittinger, 2014-05-29 13:14 +0200: comment strings - f9fe8892084a: Claus Gittinger, 2014-05-29 20:31 +0200: comment strings - e8002e2c2fd9: cg, 2014-07-10 16:34 +0200: no message - a37928cf9a1b: cg, 2014-07-10 16:45 +0200: Merge - 47fda38729e0: Claus Gittinger, 2014-07-10 16:46 +0200: merge - 8f159d8e0749: Claus Gittinger, 2014-07-10 16:47 +0200: merge - b95b1843ab38: Claus Gittinger, 2014-07-18 18:30 +0200: filename vs. string - 0d4ba716d325: Jan Vrany, 2014-07-19 10:32 +0100: Merged 3aa14b90dacd and b95b1843ab38 - 21134786ad33: Jan Vrany, 2014-07-13 22:02 +0100: Environment renamed to ReflectiveEnvrionment to match naming of other classes. - 3ae04adf796f: Jan Vrany, 2014-07-19 02:01 +0100: Oops, fixed ReflectiveType#getGenericSignature() - 770c76797564: Jan Vrany, 2014-07-20 02:41 +0100: ReflectiveEnvironment#isPackage() refactored to scan classpath for packages. - fb5aefff7ae5: Jan Vrany, 2014-07-20 21:46 +0100: ReflectiveEnvironmnt#isPackage() now consult a list of classes loaded by given ClassLoader. - fb47f223848a: Jan Vrany, 2014-07-24 20:56 +0100: Merged 0d4ba716d325 and fb5aefff7ae5 - 26dd7e06c4bb: Jan Vrany, 2014-07-24 21:18 +0100: Removed classFileBytes from JavaClass. - a95e78d1d7dc: Jan Vrany, 2014-07-25 00:08 +0100: Speed optimization in ReflectiveEnvironment#isPackage() - 87cedea6290e: Jan Vrany, 2014-07-25 00:51 +0100: Got rid of JavaZipSupport. Inflater/Deflater made public. - 243dcc6b3220: Jan Vrany, 2014-07-25 01:52 +0100: Optimized java.util.zip.ZipFile#getNextEntry() - 79cde29be713: Jan Vrany, 2014-07-25 09:23 +0100: Another speed optimization in ReflectiveEnvironment#isPackage() - 99e1b2bde5de: Jan Vrany, 2014-07-25 09:53 +0100: Fix in JavaMapInspectorView (use #binaryName instead of #name) - d7978de50434: Jan Vrany, 2014-07-25 10:08 +0100: For Java objects, use standars Java toString() as value string in inspectors. - a80e78c59918: Jan Vrany, 2014-07-25 10:11 +0100: Make JavaClass>>nameWithoutNameSpacePrefix returning the lastName. - 19acb606dd69: Jan Vrany, 2014-07-28 11:49 +0100: Merged 79cde29be713 and a80e78c59918 - 2d3e5574157a: Jan Vrany, 2014-07-28 21:17 +0100: Removed jdtcore from stx:libjava/benchmark dependencies. - a725721c7855: Jan Vrany, 2014-07-28 22:40 +0100: Fix in JavaSyntaxHighlighter - resolve types even if class does not exist yet. - 3611c3493dbc: Jan Vrany, 2014-07-28 23:49 +0100: Introduced package annotation stx.libjava.annotations.Package. - 9003a9074b2c: Jan Vrany, 2014-07-30 16:34 +0100: Renamed ReflectiveEnvironment#packages to cachedIsPackageResults. Added more comments. - 945bee015640: Jan Vrany, 2014-07-31 09:30 +0100: Made JavaClass>>package returning Smalltalk/X package name from annotation, if annotated. - 3f605f43f795: Jan Vrany, 2014-08-01 14:25 +0100: Fixed JavaRelease>>validateJavaVersionString: - d9a3d685c8b9: Jan Vrany, 2014-08-01 14:27 +0100: Force a garbage collect after each run of classreader benchmark. - 304d3543242f: Jan Vrany, 2014-08-03 23:28 +0100: Cleanup in ReflectiveEnvironment: more comments & logging. - 603fdba602c4: Jan Vrany, 2014-08-03 18:16 +0100: Fixed annotation support in reflective environment (getValue() and standard tag bits) - 5260fddf10f6: Jan Vrany, 2014-08-03 23:39 +0100: Merged 304d3543242f and 603fdba602c4 - b6bced0551a9: Jan Vrany, 2014-08-03 23:43 +0100: Merged d9a3d685c8b9 and 5260fddf10f6 - 7abed44f04cc: Jan Vrany, 2014-08-03 23:46 +0100: Merged 945bee015640 and b6bced0551a9 - 9aade8151557: Jan Vrany, 2014-08-04 00:38 +0100: Added JavaSourceFileWriter>>fileOut:on:withTimestamp:... - 0b6a9ff08acd: Jan Vrany, 2014-08-04 15:43 +0100: Class reading optimization [1/4]: optimize CharacterArray class>>decodeFromJavaUTF8: - d617b4590431: Jan Vrany, 2014-08-04 16:13 +0100: (Class reading) optimization [2/4]: rewrite slow ifNil:... by faster isNil ifTrue:... - d44f099dcff0: Jan Vrany, 2014-08-04 16:47 +0100: Classr reading optimization [3/4]: Optimize JavaMethod class>>numArgsFromDescriptor: - a4ddeef7c5e9: Jan Vrany, 2014-08-04 17:12 +0100: Class reading optimization [4/4]: defer cache flushing at class initialization time. - 189c572dbe71: Jan Vrany, 2014-08-04 23:08 +0100: Fixed getDeclaringClass() native. - a63cf3e1042f: Jan Vrany, 2014-08-05 00:11 +0100: Merged 9aade8151557 and 189c572dbe71 - 3890b120ec7f: Jan Vrany, 2014-08-05 01:02 +0100: Little tweak in ReflectiveEnvironment - a3cb415bc22b: Jan Vrany, 2014-08-05 09:27 +0100: Merged a63cf3e1042f and 3890b120ec7f - 185bbb8910e8: Jan Vrany, 2014-08-05 11:57 +0100: Fixed native java.lang.Class.getEnclosingMethod0 - ea55682eefe7: Jan Vrany, 2014-08-05 12:03 +0100: Align JavaClass>>enclosingClass with java.lang.Class.getEnclosingClass() - 4284af836b5d: Jan Vrany, 2014-08-05 20:42 +0100: Merged ea55682eefe7 and a4ddeef7c5e9 - 959071100332: Jan Vrany, 2014-08-05 21:57 +0100: Merged a3cb415bc22b and 4284af836b5d - 6cb006c63c4a: Jan Vrany, 2014-08-05 22:41 +0100: Return enclusing class's package for inner classes. Make #owningClass to return enclosing class. - 5517d6a75d40: Jan Vrany, 2014-08-06 14:24 +0100: Fix in GroovyEvaluator: care for nil values of workspace variables. - b96f863a8500: Jan Vrany, 2014-08-07 01:49 +0100: Java lint service now do dry-compilation to get more accurate problem list. - 546065d4319b: Jan Vrany, 2014-08-07 10:32 +0100: Fixed off-by-one bug in AbstractVariableDeclaration>>startPosition / endPosition extensions. - c771a69d7f7d: Jan Vrany, 2014-08-07 12:41 +0100: Removed slot JavaClass#sourceFile. - caa15c28f3a1: Jan Vrany, 2014-08-07 14:42 +0100: Fixed bad bug in realoding - do not flush type when invalidating field ref. - d3094b384e55: Jan Vrany, 2014-08-08 07:36 +0100: Fix in JavaNativeMethod: compute line number by searching the source. - c38fcee7b0da: Jan Vrany, 2014-08-08 11:02 +0100: Fixes bad bug in Java thread handling that caused memory/resource leak. - 1f63ee2cdd97: Jan Vrany, 2014-08-11 01:19 +0100: Fixed JavaClass>>fileOutAs: - 1d977d2d3abb: Jan Vrany, 2014-08-11 01:55 +0100: es to ClassLoader#classes list. - 261bad2a9657: Jan Vrany, 2014-08-11 09:46 +0100: Fixes for class unloadfing: unload inner classes first. - 93a3efa06bd1: Jan Vrany, 2014-08-11 10:55 +0100: ReflectiveEnvironment#isPackage() refactored to provide better performance. - 19fc0c196e75: Jan Vrany, 2014-08-11 10:57 +0100: Fixed typo in comment in ASTNodeComparator - dac830f75266: Jan Vrany, 2014-08-11 10:57 +0100: Merged 19fc0c196e75 and 261bad2a9657 - 3aed12bd6638: Jan Vrany, 2014-08-11 12:23 +0100: Added Echo example. - 81e439368e3d: Jan Vrany, 2014-08-11 21:26 +0100: Added option to a JavaScanner to allow for runaway string constants. - 7940d8a38e51: Jan Vrany, 2014-08-12 09:42 +0100: Oops, added missing methods. - 79fe9b2d4932: Jan Vrany, 2014-08-12 11:15 +0100: Added ASTNodeFinder, a simple visitor to locate AST node based on position in source. - dce4fa6c6dad: Jan Vrany, 2014-08-12 11:16 +0100: Merged 79fe9b2d4932 and 7940d8a38e51 - 36c8ea432a7c: Jan Vrany, 2014-08-12 13:46 +0100: Fixes in syntax hibglighting - add support for line-based highlighting - 9e60100a47c6: Jan Vrany, 2014-08-12 22:40 +0100: Fix in JavaClass>>innerClassesIgnoreUnloaded: - also return anonymous classes. - a35cc585bb5a: Jan Vrany, 2014-08-12 23:09 +0100: Fix in JavaContext>>argsAndVars: do not strip receiver (this) from arg-and-vars - 4d120f1a64f1: Jan Vrany, 2014-08-14 08:54 +0100: Fixed native java.lang.Class.getDeclaredClasses0() - 7a4491b4b7eb: Jan Vrany, 2014-08-14 08:57 +0100: Added some (unimplemented) natives for OpenJDK7's java.nio.* - 1ce74dc95339: Jan Vrany, 2014-08-14 12:24 +0100: Fix for JavaSetInspectorView (after binaryName / name refactoring ) - 1ab5987f3982: Jan Vrany, 2014-08-14 12:50 +0100: Oops, fix for class reader - remember exception table. - 7bf7a8831ed9: Jan Vrany, 2014-08-14 12:55 +0100: Fixed assertions Java>>removeThread:for: - 5c9cb5b7a35b: Jan Vrany, 2014-08-14 16:00 +0100: Merged 7bf7a8831ed9 and 9e60100a47c6 - 6a5d85f29c3a: Jan Vrany, 2014-08-16 08:13 +0100: Fixes for reloading - c8b42e8c2d6c: Jan Vrany, 2014-08-17 08:46 +0100: Fix in reloading of a method with method-level breakpoint. - 2a7558e77d4d: Jan Vrany, 2014-09-17 17:13 +0100: Changed GroovyEvaluatorTests workspace tests to run headless. - 01aa5d9b5206: Jan Vrany, 2014-09-17 17:13 +0100: Fixed comment in INVOKESPECIALX tests. - 353f4a75d558: Jan Vrany, 2014-09-18 10:00 +0100: Eclipse project settings fixed (works on 4.4 Luna) - 4e707dec1e44: Jan Vrany, 2014-09-18 11:56 +0100: Fix in GroovyScanner: honour allowRunawayString - 422e32abb28d: Jan Vrany, 2014-09-18 16:13 +0100: Fix in Java: do not flush Threads dictionary when rebooting JVM - b340178eb595: Jan Vrany, 2014-09-18 16:59 +0100: Added JavaMetaclass>>topOwningClass - 769369f7b48c: Jan Vrany, 2014-10-10 11:56 +0100: Bugfix in JavaCodeBundle: handle correclt non-exisitng packages... - 0a8b9f03ffa5: Jan Vrany, 2014-10-11 23:21 +0100: Fixed class reloader in cases a top-level class has both, nested and anonymous classes. - 16a1b7c1eccc: Jan Vrany, 2014-10-11 23:25 +0100: Eclipse projects renamec to use dotted named. - 7bd0c3fb8bfb: Jan Vrany, 2014-10-27 22:26 +0000: Fix in JavaRelease class>>system - care for broken links - e3119602c69d: Jan Vrany, 2014-11-04 08:50 +0000: Eclipse project settings fixed (again, sigh) - 03cc67fbfd3d: Jan Vrany, 2014-11-04 09:21 +0000: Added variant of native Class.forName0 as used by OpenJDK 7u71. - da769ad115e1: Jan Vrany, 2014-11-04 16:51 +0000: Merged e3119602c69d and 03cc67fbfd3d - c2c8a670bb76: Tomáš Heger, 2014-07-17 00:00 +0200: IBinaryDumper now indicates the end of dumping. - f3b26e7e56ee: Tomáš Heger, 2014-07-23 22:36 +0200: Merged with Honza's changes. - f4240f7f424a: Tomas Heger, 2014-09-10 17:28 +0200: Merged f3b26e7e56ee and c8b42e8c2d6c. - d9c528c25924: Tomas Heger, 2014-09-10 18:11 +0200: java.lang.SafeVarargs added to the supported annotations. - 98d2f92fe05b: Tomas Heger, 2014-09-10 18:17 +0200: A bug in ReflectiveType.getMemberTypes() fixed. It now returns null instead of an empty array if there are no member types. This behaviour is in compliance with the specification in the IBinaryType interface. - 645964f5513e: Tomas Heger, 2014-09-10 18:21 +0200: BinaryDumper doesn't dump SourceName for anonymous classes anymore. - a3c96c7782f1: Tomas Heger, 2014-09-18 22:33 +0200: Method ReflectiveAnnotation.getXConstant() implemented. - 225b46c95c0d: Tomas Heger, 2014-10-03 16:43 +0200: BinaryDumper has new method of dumping objects. It dumps arrays' contents and ignores an actual hashcode of the object (replaces it with a constant string), which is useful when looking for differences in dumps. - 259a03474cc4: Tomas Heger, 2014-10-03 17:15 +0200: BinaryDumper's stringToDump() method improved. It now works for empty arrays and dumps arrays' types as well. - f48973e448ab: Tomas Heger, 2014-10-03 18:14 +0200: BinaryDumper now correctly dumps methods when <clinit> is there. - 4ff24f26a19e: Tomas Heger, 2014-10-13 17:14 +0200: New class ReflectiveUtils created. General methods getXConstant() and getFieldType() moved to the new class. These are methods used by various classes. - ba5d431a3b8c: Tomas Heger, 2014-10-21 16:10 +0200: Enclosing method dumping fixed. Now it's dumped on its own row as it should be. - 0e4e6b5a86c6: Tomas Heger, 2014-10-21 16:44 +0200: If a type (ReflectiveType instance) represents a local or anonymous class within a constructor, that constructor is now returned by the ReflectiveType.getEnclosingMethod() method. - 65569ad02b60: Jan Vrany, 2014-11-05 09:03 +0000: Merged da769ad115e1 and 0e4e6b5a86c6 - 69fc19f5e37d: Jan Vrany, 2014-11-04 13:58 +0000: For Windows JDK7, make sure TwoStackSocketImpl is used - dcaeeee3e396: Jan Vrany, 2014-11-05 11:01 +0000: Implemented natives for TwoStackPlainSocketImpl - c8b892ed8c91: Jan Vrany, 2014-11-05 11:45 +0000: Merged 65569ad02b60 and dcaeeee3e396 - c536d81240a9: Tomas Heger, 2014-11-07 10:42 +0100: The getFieldType() method refactored (the actual functionality moved to new method called getSigFromName()) and new method called getNameFromSig() added. - 60ac91f62d59: Tomas Heger, 2014-11-07 10:44 +0100: A config option (dumpRuntimeInvisibleAnnots) added. With this config option set to false (which is the default value) only annotations with RetentionPolicy.RUNTIME are dumped by the BinaryDumper. - 8ca0926cc281: Tomas Heger, 2014-11-10 16:23 +0100: Functionality to find out if the annotations should be dumped (in case that they're not runtime visible) moved to a new method which is also newly used for dumping parameter annotations. - 9d8b5fb04b41: Jan Vrany, 2014-11-11 21:01 +0100: Fixed ReflectiveAnnotation on JDK6 - 34baed88b792: Jan Vrany, 2014-11-11 21:02 +0100: Merged c8b892ed8c91 and 9d8b5fb04b41 - 7a2b5c67bc0f: Jan Vrany, 2014-11-13 00:25 +0100: Fixed getXConstant() for Enums - 31b5a49df0e0: Jan Vrany, 2014-11-13 00:35 +0100: Fixed ReflectiveElementValuePair for Enum values. - a19f06fa6f09: Jan Vrany, 2014-11-13 00:49 +0100: Fixed ReflectiveAnnotation for type java.lang.invoke.MethodHandle$PolymorphicSignature. - 881799d310e3: Jan Vrany, 2014-11-13 12:18 +0100: Intern all constant pool strings. - e35a94591cb1: Jan Vrany, 2014-11-14 10:32 +0100: Updates after JavaPackage has been moved to stx:libbasic - 31188d530b64: Jan Vrany, 2014-11-16 10:25 +0000: Merged 881799d310e3 and e35a94591cb1 - c56b4d5f0c52: Marcel Hlopko, 2014-11-23 18:45 +0000: README.md edited online with Bitbucket - 3188fcb8391d: Jan Vrany, 2014-11-26 16:45 +0000: Fix in JavaClassReader>>skipAttribute: - 821170928b31: Jan Vrany, 2014-11-21 09:02 +0000: Added tag expecco_2_7_0 for changeset 31188d530b64 - d95fd165e9e3: Jan Vrany, 2014-12-01 00:20 +0000: Update for recent OpenJDK6 - 12d89689d2f2: Jan Vrany, 2014-12-01 00:48 +0000: Merge - 90f0566d8145: Jan Vrany, 2014-12-04 20:56 +0000: Extracted readMagic to alow lazy loading of constant pool. - c56313e00930: Jakub Nesveda, 2014-12-07 13:16 +0100: typo fix - e48aed9570a9: Jakub Nesveda, 2014-12-07 13:17 +0100: cc - 19e3d2dac675: Jakub Nesveda, 2014-12-07 14:25 +0100: fixed JavaRelease >> displayString for non installed or not found java releases - 1d1b9d446dd6: Jakub Nesveda, 2014-12-07 15:08 +0100: Merge - 4ac115074bce: Jan Vrany, 2014-12-07 22:55 +0000: Fixes for JavaRelase>>displayString tests. - 3aaf43a51816: Jan Vrany, 2014-12-08 18:08 +0000: Extracted magic and version detection into separate methods - 76d4443744ed: Jan Vrany, 2014-12-08 23:03 +0000: JavaClass memory optimization (part 1) - 2cf782f380f2: Jan Vrany, 2014-12-03 15:29 +0000: JavaClass memory optimization (part 2) - 10163a452c54: Jan Vrany, 2014-12-07 01:25 +0000: JavaClass memory optimization (part 3) - 14292924cac7: Jan Vrany, 2014-12-07 02:16 +0000: JavaClass memory optimization (part 4) - 1013708261a8: Jan Vrany, 2014-12-08 16:37 +0000: JavaClass memory optimization (part 5) - 87ec39ef23b8: Jan Vrany, 2014-12-08 10:26 +0000: Java settings cleanup (part 1): minor tweaks and fixes - 761c7bb5853c: Jan Vrany, 2014-12-09 14:49 +0000: Java settings cleanup (part 2): release settings refactored. - 8eb3481bfdcf: Jan Vrany, 2014-12-09 15:06 +0000: Java settings cleanup (part 3): removed user bundle editor - d9b55a42fa54: Jan Vrany, 2014-12-09 16:18 +0000: Merged 8eb3481bfdcf and 1013708261a8 - 61e9df43f8a4: Jan Vrany, 2014-12-10 09:06 +0000: Sigh, more fixes for JavaRelease>>displayString tests. - ca8cb260a3d0: Jan Vrany, 2014-12-11 00:44 +0000: Fix in JavaRelease class>>system - 1155c0d79d45: Jan Vrany, 2014-12-12 00:33 +0000: Fixed JavaClass#innerClasses, added #anonynousClasses - 777478bcd3f9: Jan Vrany, 2014-12-12 03:12 +0000: Fix in JavaSyntaxHighlighter: do resolve classes... - af659e602072: Jan Vrany, 2014-12-16 01:08 +0000: Fixes for class unloading. - ac4ecd6e586c: Jan Vrany, 2014-12-16 02:05 +0000: Minor clieanup in tools tests. - d85c559c01c6: Jan Vrany, 2014-12-16 02:42 +0000: Fixed bug in ReflectiveEnvironment#isPackage() - 8bbc18b95b78: Jan Vrany, 2014-12-16 02:49 +0000: Added JavaLintAnnotation - required by recent CodeView2 - cf7c55662e21: Jan Vrany, 2014-12-16 02:56 +0000: Merged d85c559c01c6 and 8bbc18b95b78 - b0f4e406b42d: Jan Vrany, 2014-12-17 01:20 +0000: Fix in flushing Java - flush smalltalk-to-java thread object mapping... - a467328c29fd: Jan Vrany, 2014-12-20 01:47 +0100: Fix in flushing Java - flush all dynamic proxies - b3526f83c2ff: Tomas Heger, 2014-11-16 15:08 +0100: Fixed ReflectiveUtils.getXConstant() for Classes. - 7bc74064acf3: Tomas Heger, 2014-11-18 22:54 +0100: Member filtering implemented. - ac4ade238e90: Tomas Heger, 2014-11-19 18:25 +0100: ReflectiveElementValuePair.getValue() fixed for Constant values. - 186065c6ada4: Tomas Heger, 2014-11-19 18:27 +0100: NullPointerException bug fixed in BinaryDumper.stringToDump() - bdc3f443e3c0: Tomas Heger, 2014-11-19 18:37 +0100: BinaryDumper.stringToDump() returns "null" instead of "" if null is given as a parameter. - c9cb51667da1: Tomas Heger, 2014-11-21 21:39 +0100: ReflectiveElementValuePair class tests added. - b78cacf5e303: Tomas Heger, 2014-12-11 22:47 +0100: Tests for getConstant() and getModifiers() added. - 490bd00c692c: Tomas Heger, 2014-12-11 22:53 +0100: BinaryDumper.stringToDump() now returns a String "null" for runtime invisible annotation (if the relevant config option is used). - ec683302163c: Tomas Heger, 2014-12-18 22:30 +0100: Fixed two bugs related to annotations (java.lang.annotation.Target hack improved and the problem with element-value pairs with the default value solved) - b0871eb73fd2: Tomas Heger, 2015-01-01 13:54 +0100: Minor refactoring of ReflectiveUtils. No funcionality changes. - 264b56c86880: Tomas Heger, 2015-01-04 11:25 +0100: Static variable that is no longer needed was removed from ReflectiveField. - cdab5cc716a7: Jan Vrany, 2014-12-17 00:08 +0000: Fixed bad bug in URL to to File conversion... - 00320742d075: Jan Vrany, 2015-01-05 11:00 +0100: Merged a467328c29fd and cdab5cc716a7 - 740ba227611d: Jan Vrany, 2015-01-05 11:04 +0100: Merged 00320742d075 and 264b56c86880 - a58245c0e83a: Jan Vrany, 2015-01-05 17:10 +0100: Updated copyright notices. - d9297d724fa0: Jan Vrany, 2015-01-06 11:01 +0100: Fix for D116331: Do not write to a changefile when compiling new native method - a373d416ae8c: Jan Vrany, 2015-01-11 08:03 +0000: Fix in JavaClass>>annotations - 3f9968ddacf8: Jan Vrany, 2015-01-14 11:19 +0000: Ant build files refactoring (part 1) - 327e493d2688: Jan Vrany, 2015-01-19 17:08 +0100: Ant build files refactoring (part 2) - 4c3b0badaa5f: Jan Vrany, 2015-01-20 09:42 +0100: Oops, fixed endless recursion in JavaClass>>innerClasses... - b14c58b2876c: Jan Vrany, 2015-01-20 10:41 +0100: Oops, moved stray reloading-related methods from stx:libjava/experiments to stx:libjava. - ee36f2088d60: Jan Vrany, 2015-01-20 10:49 +0100: JavaClassReloaderTests moved from stx:libjava/experiments to stx:libjava - 7aa6c098fb82: Jan Vrany, 2015-01-21 09:09 +0100: Repository cleanup (1/7): removed esug2012 and thesis directories. - 81e0e61fa317: Jan Vrany, 2015-01-21 09:30 +0100: Repository cleanup (2/7): removed smaCC directory. - 297cc823a07a: Jan Vrany, 2015-01-21 10:02 +0100: Repository cleanup (3/7): removed obsolete eclipse projects. - acdda45271f7: Jan Vrany, 2015-01-21 11:28 +0100: Repository cleanup (4/7): moved mauve source to stx:libjava/mauve/java where it belongs - 08a79331ec58: Jan Vrany, 2015-01-21 13:19 +0100: Repository cleanup (5/7): made stx:libjava/tests a full Smalltalk/X package. - fd5013aca049: Jan Vrany, 2015-01-21 13:46 +0100: Repository cleanup (6/7): moved Mauve test suite under stx:libjava/tests - 1dd84eba684a: Jan Vrany, 2015-01-21 15:50 +0100: Repository cleanup (7/7): removed docs/todo.txt - 23451a6823b1: Jan Vrany, 2015-01-22 21:31 +0100: More Java AST utilities. - e8d92a1c50f3: Jan Vrany, 2015-01-23 14:49 +0100: Updated Apache POI to 3.11 - 0f2df59e58e2: Tomas Heger, 2015-01-09 21:41 +0100: Shell script for easier launching of BinaryDumper added. - 77aa10f9e436: Tomas Heger, 2015-01-09 21:41 +0100: Many tests for the whole reflective environment added as well as some mock classes used by the tests. - a29efdbbfad2: Jan Vrany, 2015-01-27 10:14 +0000: Updated to Groovy 2.1.9 - a3ad7164f528: Jan Vrany, 2015-01-27 10:34 +0000: Groovy and JUnit .jars commited to repository. - 34b4fea6dd4f: Jan Vrany, 2015-01-27 10:45 +0000: Merged a3ad7164f528 and 77aa10f9e436 - a6358ca80d11: convert-repo, 2015-01-27 21:07 +0000: update tags - a3407cf1cd0d: Jan Vrany, 2015-01-27 22:34 +0000: Merged 34b4fea6dd4f and a6358ca80d11 - cb6c15e66bed: Jan Vrany, 2015-01-28 00:49 +0000: Temporary workaround to make tests running in eXept builds.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     1
"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
     2
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
     3
                         SWING Research Group, Czech Technical University 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
     4
                         in Prague
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     5
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     6
 Permission is hereby granted, free of charge, to any person
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     7
 obtaining a copy of this software and associated documentation
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     8
 files (the 'Software'), to deal in the Software without
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
     9
 restriction, including without limitation the rights to use,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    10
 copy, modify, merge, publish, distribute, sublicense, and/or sell
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    11
 copies of the Software, and to permit persons to whom the
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    12
 Software is furnished to do so, subject to the following
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    13
 conditions:
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    14
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    15
 The above copyright notice and this permission notice shall be
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    16
 included in all copies or substantial portions of the Software.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    17
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    18
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    19
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    20
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    21
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    22
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    23
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    24
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    25
 OTHER DEALINGS IN THE SOFTWARE.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    26
"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    27
"{ Package: 'stx:libjava' }"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    28
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    29
Lookup subclass:#JavaLookup
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    30
	instanceVariableNames:'s2j j2s'
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    31
	classVariableNames:'Instance InvokeRSelectors'
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    32
	poolDictionaries:''
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    33
	category:'Languages-Java-Interop'
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    34
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    35
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    36
Lookup subclass:#Java2Smalltalk
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    37
	instanceVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    38
	classVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    39
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    40
	privateIn:JavaLookup
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    41
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    42
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    43
Lookup subclass:#Smalltalk2Java
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    44
	instanceVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    45
	classVariableNames:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    46
	poolDictionaries:''
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    47
	privateIn:JavaLookup
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    48
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    49
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    50
!JavaLookup class methodsFor:'documentation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    51
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    52
copyright
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    53
"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    54
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    55
                         SWING Research Group, Czech Technical University 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
    56
                         in Prague
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    57
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    58
 Permission is hereby granted, free of charge, to any person
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    59
 obtaining a copy of this software and associated documentation
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    60
 files (the 'Software'), to deal in the Software without
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    61
 restriction, including without limitation the rights to use,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    62
 copy, modify, merge, publish, distribute, sublicense, and/or sell
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    63
 copies of the Software, and to permit persons to whom the
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    64
 Software is furnished to do so, subject to the following
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    65
 conditions:
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    66
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    67
 The above copyright notice and this permission notice shall be
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    68
 included in all copies or substantial portions of the Software.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    69
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    70
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    71
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    72
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    73
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    74
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    75
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    76
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    77
 OTHER DEALINGS IN THE SOFTWARE.
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    78
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    79
"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    80
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
    81
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    82
!JavaLookup class methodsFor:'initialization'!
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    83
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    84
initialize
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    85
    "Invoked at system start or when the class is dynamically loaded."
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    86
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    87
    "/ please change as required (and remove this comment)
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    88
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    89
    InvokeRSelectors := 
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    90
        #(
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    91
            " 0" #'_INVOKEVIRTUAL_R:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    92
            " 1" #'_INVOKEVIRTUAL_R:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    93
            " 2" #'_INVOKEVIRTUAL_R:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    94
            " 3" #'_INVOKEVIRTUAL_R:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    95
            " 4" #'_INVOKEVIRTUAL_R:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    96
            " 5" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    97
            " 6" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    98
            " 7" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
    99
            " 8" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   100
            " 9" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   101
            "10" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   102
            "11" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   103
            "12" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   104
            "13" #'_INVOKEVIRTUAL_R:_:_:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   105
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   106
            " 0" #'_INVOKEINTERFACE_R:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   107
            " 1" #'_INVOKEINTERFACE_R:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   108
            " 2" #'_INVOKEINTERFACE_R:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   109
            " 3" #'_INVOKEINTERFACE_R:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   110
            " 4" #'_INVOKEINTERFACE_R:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   111
            " 5" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   112
            " 6" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   113
            " 7" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   114
            " 8" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   115
            " 9" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   116
            "10" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   117
            "11" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   118
            "12" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   119
            "13" #'_INVOKEINTERFACE_R:_:_:_:_:_:_:_:_:_:_:_:_:_:_:'
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   120
        )
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   121
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   122
    "Modified (format): / 20-01-2014 / 13:50:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   123
! !
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   124
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   125
!JavaLookup class methodsFor:'instance creation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   126
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   127
cleanup
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   128
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   129
    Instance := nil.
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   130
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   131
    "Modified: / 25-02-2011 / 14:45:03 / kursjan <kursjan@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   132
    "Created: / 19-09-2011 / 23:25:08 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   133
    "Modified: / 15-12-2011 / 23:05:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   134
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   135
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   136
instance
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   137
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   138
    Instance isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   139
        Instance := self basicNew initialize
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   140
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   141
    ^Instance
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   142
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   143
    "Modified: / 25-02-2011 / 14:45:03 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   144
    "Created: / 19-09-2011 / 23:20:49 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   145
    "Modified: / 15-12-2011 / 23:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   146
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   147
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   148
new
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   149
    ^ self shouldNeverBeSent.
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   150
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   151
    "Created: / 25-02-2011 / 14:44:43 / kursjan <kursjan@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   152
    "Modified: / 29-08-2011 / 21:10:12 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   153
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   154
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   155
!JavaLookup methodsFor:'initialization'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   156
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   157
initialize
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   158
    "Invoked when a new instance is created."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   159
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   160
    s2j := Smalltalk2Java new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   161
    j2s := Java2Smalltalk new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   162
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   163
    "Modified: / 15-12-2011 / 23:06:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   164
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   165
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   166
!JavaLookup methodsFor:'lookup'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   167
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   168
lookupMethodForSelector: selector directedTo: initialSearchClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   169
    "This method performs standard Java lookup as required JVM spec. See 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   170
        - JVM spec, 5.4.2.1 Method overriding
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   171
        - JVM spec, 6.4 invokevirtual
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   172
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   173
     This is hacky because of those stupid package-private methods. Sigh."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   174
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   175
    | method superMethod |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   176
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   177
    method := super lookupMethodForSelector: selector directedTo: initialSearchClass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   178
    method isNil ifTrue:[ ^ nil ].
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   179
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   180
    superMethod := super lookupMethodForSelector: selector directedTo: method mclass superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   181
    [ superMethod notNil ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   182
        (method overrides: superMethod) ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   183
            method := superMethod
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   184
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   185
        superMethod := super lookupMethodForSelector: selector directedTo: superMethod mclass superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   186
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   187
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   188
    ^method
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   189
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   190
    "Created: / 05-07-2012 / 11:06:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   191
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   192
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   193
lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext ilc: ilcCache
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   194
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   195
    "Invoked by the VM to ask me for a method to call.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   196
     The arguments are: the selector, receiver and arguments,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   197
     the class to start the search in (for here-, super and directed sends)
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   198
     the sending context and the inline/poly cache (instance of
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   199
     PolymorphicInlineCache). "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   200
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   201
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   202
     "JV@2012-08-21: Following C code speeds up Java<->Smalltalk interop by
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   203
      order of 2 magnitudes. However, it breaks Java reflection. 
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   204
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   205
      This is because it does not handle package private methods correctly.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   206
      On the other hand, PP methods are not handled correctly when not using 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   207
      reflection anyway, so lets keep the optimization here.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   208
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   209
      Once we will have functinal JIT compiler, we can remove it and Java
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   210
      package-private method will be supported correctly in all cases.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   211
     "
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   212
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   213
     | sender |
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   214
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   215
%{
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   216
    OBJ method;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   217
    method = __lookup(initialSearchClass, selector);
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   218
    if ( method ) {
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   219
        if ( ilcCache ) {
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   220
            __ilcBind(ilcCache, initialSearchClass, method, selector);
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   221
        }
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   222
        RETURN (method);
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   223
    }
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   224
%}.
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   225
    "/ Sigh, here we have to care about different code paths. The new JIT compilation scheme
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   226
    "/ sends JavaVM>>_INVOKE*R:... for sends whose methodref is not yet resolved. Thus the stack
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   227
    "/ (starting with sendingContext) may look like:
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   228
    "/ 
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   229
    "/ (0) real sending context - whoever it is
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   230
    "/ 
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   231
    "/ for resolved/interpreted sends or:
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   232
    "/ 
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   233
    "/ (0) performWith:withArguments:
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   234
    "/ (1) _INVOKEVIRTUAL_R:* / _INVOKEINTERFACE_R:*
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   235
    "/ (2) real sending context - whoever it is
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   236
    "/ 
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   237
    "/ for unresolved sends from JIT-compiled code.
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   238
    "/ In tha latter case we have to skip those 2 'implementation' contexts:
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   239
    sender := sendingContext.
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   240
    sender selector == #perform:withArguments: ifTrue:[
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   241
        sender := sender sender.
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   242
        (sender receiver == JavaVM and: [ InvokeRSelectors includes: sender selector ]) ifTrue:[
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   243
            sender := sender sender.
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   244
        ] ifFalse:[
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   245
            sender := sendingContext.
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   246
        ].
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   247
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   248
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   249
    sender programmingLanguage isSmalltalk ifTrue:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   250
        aReceiver class theNonMetaclass programmingLanguage isJavaLike ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   251
            ^s2j lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext ilc: ilcCache.
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   252
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   253
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   254
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   255
    sender programmingLanguage isJavaLike ifTrue:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   256
        initialSearchClass programmingLanguage isSmalltalk ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   257
            "Java to Smalltalk send"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   258
            ^j2s lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext ilc: ilcCache.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   259
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   260
        initialSearchClass programmingLanguage isJavaLike ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   261
            "Java to Java send"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   262
            | m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   263
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   264
            m := self lookupMethodForSelector: selector directedTo: initialSearchClass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   265
            m notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   266
                ilcCache notNil ifTrue:[ ilcCache bindTo: m forClass: aReceiver class ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   267
                ^m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   268
            ]
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   269
        ].
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   270
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   271
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   272
    ^super lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext ilc: ilcCache.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   273
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   274
    "Created: / 01-10-2011 / 13:18:40 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   275
    "Created: / 15-12-2011 / 23:11:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
   276
    "Modified: / 20-01-2014 / 13:27:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   277
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   278
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   279
!JavaLookup::Java2Smalltalk methodsFor:'lookup'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   280
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   281
lookupMethodForSelector:selector directedTo:initialSearchClass for:receiver withArguments:argArrayOrNil from:sendingContext ilc: ilc
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   282
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   283
    | d m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   284
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   285
    d := JavaDescriptor readFrom: (selector readStream skipThrough: $(; backStep; yourself).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   286
    m := self lookupMethodForSelector: selector directedTo: initialSearchClass numArguments: d numArgs.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   287
    m notNil ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   288
        m := self compileProxyWithSelector: selector descriptor: d in: receiver class calling: m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   289
        ilc notNil ifTrue:[ilc bindTo: m forClass: receiver class].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   290
        ^m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   291
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   292
        ^ nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   293
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   294
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   295
    "Created: / 06-09-2011 / 22:04:04 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   296
    "Modified: / 09-10-2011 / 22:59:18 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   297
    "Created: / 19-11-2011 / 12:37:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   298
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   299
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   300
lookupMethodForSelector:jselector directedTo:initialSearchClass numArguments: nArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   301
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   302
    | name cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   303
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   304
    name := jselector upTo: $(.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   305
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   306
    "Pass 1: Search for explicitly annotated method"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   307
    cls := initialSearchClass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   308
    [ cls notNil ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   309
        cls methodDictionary keysAndValuesDo:[:sel :mthd|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   310
            | jdescriptor |
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   311
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   312
            mthd numArgs == nArgs ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   313
                (jdescriptor := mthd annotationAt: #javaselector:) notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   314
                    jdescriptor arguments first == jselector ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   315
                        ^mthd    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   316
                    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   317
                ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   318
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   319
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   320
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   321
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   322
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   323
    "Pass 2: Search for method with matching name"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   324
    cls := initialSearchClass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   325
    [ cls notNil ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   326
        cls methodDictionary keysAndValuesDo:[:sel :mthd|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   327
            mthd numArgs == nArgs ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   328
                (sel startsWith: name) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   329
                    ^mthd
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   330
                ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   331
            ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   332
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   333
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   334
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   335
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   336
    ^nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   337
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   338
    "Created: / 16-12-2011 / 00:00:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   339
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   340
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   341
!JavaLookup::Java2Smalltalk methodsFor:'utilities'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   342
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   343
addSelector:selector withMethod:proxy toClass:class 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   344
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   345
    ProxyMethod installProxies ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   346
        Class withoutUpdatingChangesDo:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   347
            class addSelector:selector withMethod:proxy.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   348
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   349
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   350
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   351
    "Modified: / 23-12-2011 / 13:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   352
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   353
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   354
compileProxyWithSelector:selector descriptor:descriptor in:class calling:callee 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   355
    |compiler proxy body|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   356
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   357
    compiler := ProxyMethodCompiler new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   358
    body := compiler newJavaMethodInvocation: callee.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   359
    body descriptor:descriptor.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   360
    proxy := compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   361
                compile:body 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   362
                arguments:callee numArgs 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   363
                selector: selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   364
"/    JK: do nod add here
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   365
"/    JV: Why?
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   366
    self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   367
        addSelector:selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   368
        withMethod:proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   369
        toClass:class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   370
    ^ proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   371
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   372
    "Created: / 14-12-2011 / 20:48:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   373
    "Modified: / 01-01-2012 / 19:33:45 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   374
    "Modified: / 24-02-2012 / 20:36:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   375
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   376
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   377
!JavaLookup::Smalltalk2Java methodsFor:'lookup'!
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   378
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   379
lookupMethodForSelector: selector directedTo: initialSearchClass for: receiver withArguments: argArrayOrNil from: sendingContext ilc: ilc 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   380
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   381
     As a courtesy to a Smalltalker, try to map smalltalk selectors to a java ones.
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   382
     Returns a method or nil"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   383
    
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   384
    | name candidates m |
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   385
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   386
    name := selector upTo: $:.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   387
    candidates := OrderedCollection new.
2792
662204c99509 Oops, fixed interop for extensions defined on interfaces.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2791
diff changeset
   388
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   389
    candidates := self lookupMethodsForSelector: selector in: initialSearchClass ? receiver class static: receiver isBehavior.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   390
    candidates notEmpty ifTrue: [
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   391
        "/ If candidates contains only one method that is not Java method,
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   392
        "/ then return this method. It's either a smalltalk extension or
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   393
        "/ ambiguous method trampoline...
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   394
        (candidates size == 1 and:[ (m := candidates anElement) isJavaMethod not]) ifTrue:[ 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   395
            ilc notNil ifTrue: [ ilc bindTo: m forClass: receiver class ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   396
            ^ m.
2792
662204c99509 Oops, fixed interop for extensions defined on interfaces.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2791
diff changeset
   397
        ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   398
        m := self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   399
                compileProxyWithSelector: selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   400
                in: receiver class
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   401
                candidates: candidates.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   402
        ilc notNil ifTrue: [ ilc bindTo: m forClass: receiver class ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   403
         "Install the proxy"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   404
        self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   405
            addSelector: selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   406
            withMethod: m
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   407
            toClass: receiver class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   408
        ^ m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   409
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   410
     "Hmm, hmm, maybe a public field?"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   411
    (argArrayOrNil size < 2) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   412
        | field |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   413
        field := initialSearchClass theNonMetaclass 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   414
                lookupFieldFor: name
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   415
                static: initialSearchClass isMetaclass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   416
                onlyPublic: true.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   417
        field notNil ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   418
            m := self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   419
                    compileProxyWithSelector: selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   420
                    in: receiver class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   421
                    accessing: field.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   422
            ilc notNil ifTrue: [ ilc bindTo: m forClass: receiver class ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   423
             "Install the proxy"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   424
            self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   425
                addSelector: selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   426
                withMethod: m
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   427
                toClass: receiver class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   428
            ^ m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   429
        ]
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   430
    ].
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   431
    ^ nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   432
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   433
    "Created: / 21-02-2011 / 13:38:55 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   434
    "Modified: / 29-08-2011 / 20:38:21 / kursjan"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   435
    "Modified: / 20-09-2011 / 00:03:48 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   436
    "Modified (format): / 25-09-2011 / 21:08:45 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   437
    "Created: / 19-11-2011 / 13:03:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   438
    "Modified: / 01-01-2012 / 19:58:59 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   439
    "Modified (comment): / 02-01-2012 / 10:35:25 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   440
    "Modified: / 18-11-2012 / 18:17:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   441
    "Modified: / 16-12-2012 / 13:59:55 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   442
    "Modified: / 19-03-2014 / 17:27:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   443
!
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   444
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   445
lookupMethodsForSelector: selector in: initialSearchClass static: static
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   446
    "Lookup all matching methods for given (Smalltalk) selector starting with
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   447
     `initialSearchClass`. If `static` is true, then search for static methods,
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   448
     otherwise for search instance methods.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   449
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   450
     Returns a list of method candidates that match given selector.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   451
    "
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   452
    
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   453
    | name nameSizePlusOne numArgs candidates  finder1 finder2  cls ifacesQ ifacesSeen |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   454
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   455
    name := selector upTo: $:.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   456
    nameSizePlusOne := name size + 1.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   457
    numArgs := selector numArgs.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   458
    candidates := OrderedCollection new.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   459
    ifacesSeen := Set new.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   460
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   461
    "/ Method finder to lookup extension methods in interfaces...
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   462
    finder1 := [:cls |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   463
        cls interfaces notEmptyOrNil ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   464
            ifacesQ := OrderedCollection with: (cls interfaces).
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   465
            [ ifacesQ notEmpty ] whileTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   466
                | ifaces newIfaces extension |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   467
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   468
                ifaces := ifacesQ removeFirst.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   469
                extension := nil.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   470
                ifaces do:[:iface |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   471
                    (ifacesSeen includes: iface) ifFalse:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   472
                        | m |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   473
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   474
                        ifacesSeen add: iface.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   475
                        m := iface compiledMethodAt: selector.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   476
                        m notNil ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   477
                            extension notNil ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   478
                                "/ Ambiguous, return error trampoline
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   479
                                | sel |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   480
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   481
                                sel :=
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   482
                                    #(  ambiguousMessageSend
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   483
                                        ambiguousMessageSendWith:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   484
                                        ambiguousMessageSendWith:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   485
                                        ambiguousMessageSendWith:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   486
                                        ambiguousMessageSendWith:With:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   487
                                        ambiguousMessageSendWith:With:With:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   488
                                        ambiguousMessageSendWith:With:With:With:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   489
                                        ambiguousMessageSendWith:With:With:With:With:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   490
                                        ambiguousMessageSendWith:With:With:With:With:With:With:With:
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   491
                                    ) at: selector numArgs + 1.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   492
                                ^ Array with: (self class compiledMethodAt: sel).
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   493
                            ] ifFalse:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   494
                                extension := m.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   495
                            ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   496
                        ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   497
                    ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   498
                ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   499
                extension notNil ifTrue:[ ^ Array with: extension ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   500
                newIfaces := Set new.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   501
                ifaces do:[:iface| newIfaces addAll: iface interfaces ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   502
                newIfaces notEmpty ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   503
                    ifacesQ add: newIfaces.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   504
                ].        
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   505
            ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   506
        ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   507
    ]. 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   508
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   509
    "/ Method finder to map Java methods to smalltalk selectors...
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   510
    finder2 := [:cls |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   511
        cls methodDictionary keysAndValuesDo: [:sel :mthd | 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   512
            "candidates may contain a method with same selector ->
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   513
             do not add super-class's method"
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   514
            (candidates contains: [:each | each selector == sel ]) ifFalse: [
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   515
                (mthd mclass ~~ ProxyMethod 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   516
                    and: [
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   517
                        ((sel size >= nameSizePlusOne) 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   518
                            and: [ (sel at: nameSizePlusOne) == $( and: [ (sel startsWith: name) ] ]) 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   519
                                and: [ mthd descriptor numArgs == numArgs ]
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   520
                    ]) 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   521
                        ifTrue: [ candidates add: mthd ]
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   522
            ]
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   523
        ]
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   524
    ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   525
    "Search class for method candidates"
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   526
    cls := initialSearchClass theNonMetaclass.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   527
    static ifTrue: [ 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   528
        finder2 value: cls 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   529
    ] ifFalse: [
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   530
        [ cls notNil and: [ cls ~~ JavaObject ] ] whileTrue: [
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   531
            finder1 value: cls.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   532
            finder2 value: cls.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   533
            cls := cls superclass.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   534
        ]
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   535
    ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   536
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   537
    candidates notEmpty ifTrue:[ 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   538
        "because java compiler generates synthetic method, when overriden
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   539
         method has narrows return type than method from superclass/interface,
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   540
         we don't take these particular synthetic methods as candidates, they just
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   541
         delegate to overridden methods."
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   542
        ((candidates size > 1) and:[candidates anySatisfy:[:each|each isSynthetic]]) ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   543
            | candidatesPerNameAndArg |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   544
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   545
            candidatesPerNameAndArg := Dictionary new.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   546
            candidates do:[:each|
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   547
                | nameAndArgs |
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   548
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   549
                nameAndArgs := each selector upTo:$).
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   550
                candidatesPerNameAndArg at: nameAndArgs ifAbsentPut:[each]. 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   551
            ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   552
            candidates := candidatesPerNameAndArg values.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   553
        ].        
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   554
    ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   555
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   556
    ^ candidates.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   557
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   558
    "Created: / 19-03-2014 / 16:24:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   559
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   560
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   561
!JavaLookup::Smalltalk2Java methodsFor:'lookup (old)'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   562
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   563
old_lookupMethodForSelector:selector directedTo:initialSearchClass for:receiver withArguments:argArrayOrNil from:sendingContext ilc: ilc
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   564
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   565
    As a courtesy to a Smalltalker, try to map smalltalk selectors to a java ones.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   566
    Returns JavaMethodDescriptor or nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   567
    "
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   568
    |descriptor candidate static cls m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   569
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   570
    static := receiver isBehavior.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   571
    descriptor := JavaMethodDescriptor 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   572
            name: (selector upTo:$:) 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   573
            parameters: (argArrayOrNil ? #() collect:[:a|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   574
                (a class isString and: [JavaVM booted]) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   575
                    JavaFieldDescriptorWithUnionType new
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   576
                        addDescriptor: (JavaFieldDescriptor javaClass: a class);
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   577
                        addDescriptor: (JavaFieldDescriptor javaClass: (JavaVM classForName: 'java.lang.String'));
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   578
                        yourself.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   579
                ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   580
                    JavaFieldDescriptor javaClass: a class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   581
                ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   582
            ]).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   583
    cls := initialSearchClass theNonMetaclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   584
    [ cls notNil and:[cls ~~ JavaObject] ] whileTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   585
        cls methodsDo:[:mthd|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   586
            "/(mthd selector startsWith: 'foo') ifTrue:[self breakPoint: #jv]. 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   587
            (mthd class ~~ ProxyMethod and:[mthd isStatic == static and:[descriptor match: mthd descriptor]]) ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   588
                candidate isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   589
                    candidate := mthd
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   590
                ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   591
                    candidate descriptorSymbol ~~ mthd descriptorSymbol ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   592
                        "Hm, hm, two matching methods with different descriptors means
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   593
                         ambiguity...raise an error"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   594
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   595
                        "Bit hacky - NamespaceAwareLookup already has method to generate
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   596
                         ambigouous send trampouline..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   597
                        ^NamespaceAwareLookup instance ambiguousMessageSend: selector withArgs: argArrayOrNil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   598
                    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   599
                ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   600
            ]                                                                 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   601
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   602
        cls := cls superclass.                
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   603
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   604
    candidate notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   605
        m := self compileProxyWithSelector: selector descriptor: descriptor in: receiver class calling: candidate.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   606
        ilc notNil ifTrue:[ilc bindTo: m forClass: receiver class].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   607
        ^m.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   608
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   609
    ^nil
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   610
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   611
    "Created: / 21-02-2011 / 13:38:55 / kursjan <kursjan@fit.cvut.cz>"
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   612
    "Modified: / 11-04-2011 / 20:19:50 / kursjan <kursjan@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   613
    "Modified: / 29-08-2011 / 20:38:21 / kursjan"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   614
    "Modified: / 20-09-2011 / 00:03:48 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   615
    "Modified (format): / 25-09-2011 / 21:08:45 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   616
    "Created: / 16-12-2011 / 23:05:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2678
c865275e48a7 Updated to match Mercurial revision a00302fe5083 with two tweaks:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2396
diff changeset
   617
    "Modified: / 07-05-2013 / 11:19:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   618
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   619
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   620
!JavaLookup::Smalltalk2Java methodsFor:'matching'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   621
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   622
descriptorForJavaSelector:arg
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   623
    ^ MessageDescription new 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   624
        parserClass: JavaSelectorParser;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   625
        selector: arg;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   626
        yourself.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   627
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   628
    "Created: / 29-08-2011 / 20:41:48 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   629
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   630
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   631
descriptorForSmalltalkSelector:selector arguments: args
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   632
    ^ MessageDescription new 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   633
        parserClass: SmalltalkSelectorParser;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   634
        runtimeArguments: args;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   635
        selector: selector;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   636
        yourself.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   637
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   638
    "Created: / 29-08-2011 / 21:44:06 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   639
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   640
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   641
findBestMatchOf: smalltalkMethod in: javaMethods
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   642
    | methods |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   643
    javaMethods size = 1 ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   644
        ^ javaMethods first.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   645
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   646
    javaMethods size = 0 ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   647
        ^ nil
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   648
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   649
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   650
    methods := javaMethods select: [:m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   651
        m argSize = smalltalkMethod argSize.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   652
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   653
    methods size = 1 ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   654
        ^ methods first.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   655
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   656
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   657
    methods := methods select: [:m |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   658
        self javaMatches: m argTypes to: smalltalkMethod args.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   659
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   660
    methods size = 1 ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   661
        ^ methods first.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   662
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   663
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   664
    methods size = 0 ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   665
        ^ nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   666
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   667
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   668
    ^ Error raiseErrorString: 'Ambiguous selector: ', smalltalkMethod name.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   669
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   670
    "Created: / 29-08-2011 / 20:50:14 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   671
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   672
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   673
javaMatches: jArgs to: sArgs
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   674
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   675
    1 to: jArgs size do: [ :i |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   676
        ((JavaTypeBox typeBoxForJava: (jArgs at: i)) smalltalkType = ((sArgs at: i) className)) ifFalse: [ ^ false ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   677
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   678
    ^ true.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   679
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   680
    "Created: / 29-08-2011 / 21:21:37 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   681
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   682
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   683
javaSelectorsFor:class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   684
    | selectors cls static |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   685
    cls := class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   686
    selectors := IdentitySet new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   687
    self breakPoint: #jk info: 'determine static based on class'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   688
    static := false.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   689
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   690
    [cls = JavaObject] whileFalse: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   691
        cls methodDictionary keysAndValuesDo: [:k :v |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   692
            (v isJavaMethod and: [v isStatic = static]) ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   693
                selectors add: k.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   694
            ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   695
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   696
        cls := cls superclass.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   697
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   698
    ^ selectors.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   699
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   700
    "Created: / 06-09-2011 / 22:20:34 / Jan Kurs <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   701
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   702
2791
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   703
!JavaLookup::Smalltalk2Java methodsFor:'trampolines'!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   704
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   705
ambiguousMessageSend
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   706
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   707
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   708
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   709
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   710
            arguments: #()
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   711
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   712
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   713
    "Created: / 19-08-2010 / 22:05:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   714
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   715
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   716
ambiguousMessageSendWith: a1
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   717
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   718
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   719
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   720
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   721
            arguments: (Array with: a1)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   722
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   723
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   724
    "Created: / 19-08-2010 / 22:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   725
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   726
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   727
ambiguousMessageSendWith: a1 with: a2
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   728
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   729
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   730
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   731
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   732
            arguments: (Array with: a1 with: a2)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   733
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   734
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   735
    "Created: / 19-08-2010 / 22:06:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   736
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   737
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   738
ambiguousMessageSendWith: a1 with: a2 with: a3
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   739
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   740
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   741
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   742
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   743
            arguments: (Array with: a1 with: a2 with: a3)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   744
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   745
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   746
    "Created: / 19-08-2010 / 22:06:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   747
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   748
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   749
ambiguousMessageSendWith: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   750
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   751
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   752
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   753
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   754
            arguments: (Array with: a1 with: a2 with: a3 with: a4)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   755
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   756
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   757
    "Created: / 19-08-2010 / 22:06:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   758
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   759
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   760
ambiguousMessageSendWith: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   761
                    with: a5
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   762
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   763
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   764
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   765
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   766
            arguments: (Array with: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   767
                              with: a5)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   768
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   769
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   770
    "Created: / 19-08-2010 / 22:07:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   771
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   772
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   773
ambiguousMessageSendWith: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   774
                    with: a5 with: a6
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   775
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   776
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   777
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   778
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   779
            arguments: (Array with: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   780
                              with: a5 with: a6)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   781
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   782
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   783
    "Created: / 19-08-2010 / 22:07:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   784
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   785
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   786
ambiguousMessageSendWith: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   787
                    with: a5 with: a6 with: a7
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   788
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   789
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   790
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   791
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   792
            arguments: (Array with: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   793
                              with: a5 with: a6 with: a7)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   794
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   795
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   796
    "Created: / 19-08-2010 / 22:07:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   797
!
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   798
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   799
ambiguousMessageSendWith: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   800
                    with: a5 with: a6 with: a7 with: a8
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   801
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   802
    ^self ambiguousMessage:
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   803
        (Message 
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   804
            selector: thisContext selector
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   805
            arguments: (Array with: a1 with: a2 with: a3 with: a4
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   806
                              with: a5 with: a6 with: a7 with: a8)
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   807
        )
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   808
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   809
    "Created: / 19-08-2010 / 22:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   810
! !
6a57107d168a Improvement in interop/java extensions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2732
diff changeset
   811
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   812
!JavaLookup::Smalltalk2Java methodsFor:'utilities'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   813
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   814
addSelector:selector withMethod:proxy toClass:class 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   815
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   816
    ProxyMethod installProxies ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   817
        Class withoutUpdatingChangesDo:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   818
            class addSelector:selector withMethod:proxy.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   819
            proxy mclass: class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   820
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   821
    ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   822
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   823
    "Created: / 01-01-2012 / 17:41:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   824
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   825
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   826
compileProxyWithSelector:selector in:class accessing: field
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   827
    "For given field, create a proxy getter/setter"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   828
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   829
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   830
    |compiler proxy body isSetter |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   831
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   832
    class theNonMetaclass classInit.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   833
    isSetter := selector last == $:.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   834
    compiler := ProxyMethodCompiler new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   835
    isSetter ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   836
        body := compiler newJavaFieldSetter: field.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   837
        proxy := compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   838
                compile:body
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   839
                arguments: 1
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   840
                selector:selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   841
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   842
        body := compiler newJavaFieldGetter: field.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   843
        proxy := compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   844
                compile:body
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   845
                arguments: 0
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   846
                selector:selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   847
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   848
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   849
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   850
    ^ proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   851
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   852
    "Modified: / 30-12-2011 / 14:44:11 / kursjan <kursjan@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   853
    "Created: / 17-03-2012 / 16:54:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   854
!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   855
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   856
compileProxyWithSelector:selector in:class candidates:candidates 
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   857
    "For given set of methods, create a dispatching proxy with given selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   858
     This method performs typechecks on arguments and dispatch to proper method"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   859
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   860
    |compiler proxy body fallback|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   861
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   862
    compiler := ProxyMethodCompiler new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   863
    fallback := self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   864
                fallbackWithSelector:selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   865
                in:class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   866
                compiler:compiler.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   867
     "Generate and install dispatching tree..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   868
    selector numArgs == 0 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   869
        "If method has no arguments, no dynamic method dispatch is
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   870
         required (method cannot be overloaded)  Therefore, no fallback is 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   871
         needed. In theory, there is no need for proxy method at all..."
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   872
        self assert:candidates size == 1.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   873
        body := compiler newJavaMethodInvocation:candidates anyOne.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   874
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   875
        "JV@2012-01-01: Based on discussion with JK, if there is no overloaded method
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   876
         DO NOT compile guard, call the method directly. We'll see..."
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   877
        "JV@2014-03-19: NO, DON'T DO THAT, that's fundamentally wrong.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   878
         A new overloaded method may come in future, for example
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   879
         a new subclass may get loaded or a new method is added to
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   880
         some class along the chain..."
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   881
"/        methods size == 1 ifTrue:[
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   882
"/            body := (compiler newJavaMethodInvocation:methods anElement).
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   883
"/        ] ifFalse:[
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   884
            "For every method, create a guard and add it"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   885
            body := fallback.
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   886
"/        ]
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   887
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   888
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   889
    "/Create and install proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   890
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   891
    proxy := compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   892
                compile:body
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   893
                arguments:selector numArgs
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   894
                selector:selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   895
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   896
"/    self halt.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   897
"/    JK: do NOT install here, just compile and return the proxy. Let someone else to install
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   898
"/    self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   899
"/        addSelector:selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   900
"/        withMethod:proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   901
"/        toClasS:class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   902
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   903
    ^ proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   904
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   905
    "Created: / 19-03-2014 / 17:28:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   906
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   907
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   908
compileProxyWithSelector: selector in: class receiver: receiver arguments: arguments
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   909
    "For given receiver and arguments, selects apropriate method from methods
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   910
     and compile guard"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   911
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   912
    | compiler candidates method proxy condition invocation fallback guard |
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   913
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   914
    compiler := ProxyMethodCompiler new.    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   915
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   916
    proxy := class compiledMethodAt: selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   917
    proxy notNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   918
        fallback := proxy body    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   919
    ] ifFalse:[
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   920
        fallback := self fallbackWithSelector: selector in: class compiler: compiler.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   921
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   922
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   923
    candidates := self lookupMethodsForSelector: selector in: receiver class static: receiver isBehavior.    
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   924
    method := self selectMethodFrom: candidates arguments: arguments.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   925
    invocation := compiler newJavaMethodInvocation:method.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   926
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   927
    condition := nil.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   928
    arguments withIndexDo:[:arg :index|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   929
        condition isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   930
            condition := compiler newTypeCheck: arg class argument: index.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   931
        ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   932
            condition := condition and: (compiler newTypeCheck: arg class argument: index).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   933
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   934
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   935
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   936
    guard := compiler newGuard
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   937
                condition: condition;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   938
                action: invocation; 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   939
                fallback: fallback;
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   940
                yourself.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   941
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   942
    proxy := compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   943
                compile:guard
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   944
                arguments:selector numArgs
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   945
                selector:selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   946
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   947
    self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   948
        addSelector:selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   949
        withMethod:proxy
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   950
        toClass:receiver class.
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   951
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   952
    "Created: / 19-03-2014 / 17:27:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   953
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   954
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   955
fallbackWithSelector:selector in:class compiler:compiler 
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   956
    ^ compiler 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   957
        newJavaBlockInvocation:[:receiver :arguments | 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   958
            self 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   959
                compileProxyWithSelector:selector
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   960
                in:class
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   961
                receiver:receiver
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   962
                arguments:arguments.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   963
            "/self breakPoint:#jv.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   964
            receiver perform:selector withArguments:arguments.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   965
        ]
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
   966
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   967
    "Created: / 19-03-2014 / 17:25:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   968
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   969
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   970
selectMethodFrom: methods arguments: arguments
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   971
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   972
    | candidates |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   973
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   974
    methods size == 1 ifTrue:[ 
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   975
        ^ methods anElement.
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   976
    ].
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   977
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   978
    candidates := methods.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   979
    arguments withIndexDo:[:arg :index|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   980
        | cls |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   981
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   982
        cls := arg class.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   983
        candidates := candidates select:[:m|
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   984
            self breakPoint:#mh.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   985
            self type: cls matches: (m descriptor parameters at: index) javaClass
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   986
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   987
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   988
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   989
    candidates size == 0 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   990
        self halt: 'Unfinished - no matching method'        
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   991
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   992
    candidates size == 1 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   993
        ^candidates anElement
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   994
    ].
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
   995
    self breakPoint: #jv."/ This is a timed bomb...
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
   996
    ^ candidates first
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   997
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   998
    "Created: / 03-01-2012 / 21:40:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
   999
    "Modified: / 03-04-2012 / 13:59:13 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
3041
7a326f9f8aad Bug fix in interop with respect to overloaded methods in subclasses.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2981
diff changeset
  1000
    "Modified: / 19-03-2014 / 16:41:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1001
!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1002
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1003
type: actual matches: formal 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1004
    "Return true, if actual (parameter) type matches given formal (parameter) type"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1005
    
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1006
    formal isJavaPrimitiveType ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1007
        actual == SmallInteger ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1008
            ^ formal == Integer or: [ actual == formal ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1009
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1010
        formal == Boolean ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1011
            ^ actual == True or: [ actual == False or: [ actual == Boolean ] ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1012
        ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1013
        ^ actual == formal.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1014
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1015
     "nil matches any formal type (to follow undocumented
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1016
     feature of JVM (also seen in CHECKCAST instruction :))" 
2729
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1017
    actual == UndefinedObject ifTrue: [ ^ true ].
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1018
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1019
    "char[] matches smalltal string..."
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1020
    formal == Unicode16String ifTrue:[
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1021
        ^ actual inheritsFrom: CharacterArray
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1022
    ].
ac412f6ea6d4 More support for method's source display. Not yet working.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2588
diff changeset
  1023
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1024
    actual isJavaPrimitiveType ifTrue: [
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1025
        ^ formal isJavaWrapperClass and: [ formal == actual javaWrapperClass ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1026
    ].
2981
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1027
    (actual includesBehavior: String) ifTrue: [
2841
6fa1bcf9c997 JavaClass>>#name vs. #binaryName refactoring
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2792
diff changeset
  1028
        ^ formal binaryName == #'java/lang/String'
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1029
    ].
2981
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1030
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1031
    (actual includesBehavior: Unicode16String) ifTrue: [
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1032
        ^ formal binaryName == #'java/lang/String'
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1033
    ].
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1034
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1035
    (actual includesBehavior: Unicode32String) ifTrue: [
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1036
        ^ formal binaryName == #'java/lang/String'
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1037
    ].
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1038
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1039
    ^ JavaVM canCast: actual to: formal
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1040
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1041
    "Created: / 03-01-2012 / 22:36:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1042
    "Modified: / 03-04-2012 / 13:59:28 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1043
    "Modified: / 16-12-2012 / 11:44:17 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
2981
5c86c719a79b Fix in JavaLookup::Smalltalk2Java: match Unicode16/32String to java.lang.String when calling Java method from Smalltalk.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2976
diff changeset
  1044
    "Modified: / 21-01-2014 / 14:42:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1045
! !
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1046
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1047
!JavaLookup::Smalltalk2Java methodsFor:'utilities (old)'!
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1048
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1049
old_compileProxyWithSelector: selector descriptor: descriptor in: class calling: callee
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1050
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1051
    | proxy invocation fallback |
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1052
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1053
    "This method might (indirectly) be invoked by guarded method itself,
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1054
     when all guards fails and method gets recompiled during fallback action.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1055
     In that case, we should not throw away existing proxy, but just extend it."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1056
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1057
    proxy := class compiledMethodAt: selector.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1058
    proxy isNil ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1059
        "No method exists, create one..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1060
        proxy := ProxyMethod new.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1061
        proxy numberOfArgs: callee descriptor numPhysicalArgs.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1062
        proxy source:'I''m a proxy method, please inspect my body'.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1063
        "Create default fallback"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1064
        fallback := ProxyMethod newJavaBlockInvocation: [ self halt: 'Launch recompile, not yet implemented'].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1065
        "Install it..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1066
        Class withoutUpdatingChangesDo:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1067
            class addSelector: selector withMethod: proxy.        
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1068
        ]
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1069
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1070
        "Method already exists, then the fallback is currently 
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1071
         installed body"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1072
        fallback := proxy body.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1073
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1074
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1075
    "Now, create and install a node that invokes given method"   
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1076
    callee numArgs == 0 ifTrue:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1077
        "If method has no arguments, no dynamic method dispatch is
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1078
        required. Therefore, no fallback is needed. In theory, there is
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1079
        no need for proxy method at all..."
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1080
        self assert: descriptor numArgs size == 0.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1081
        invocation := ProxyMethod newJavaMethodInvocation: callee.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1082
        "Install it"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1083
        proxy body: invocation
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1084
    ] ifFalse:[
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1085
        "Create a guard"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1086
        invocation := ProxyMethod newGuard.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1087
        invocation condition: callee descriptor guardCondition.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1088
        invocation action: (ProxyMethod newJavaMethodInvocation: callee).
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1089
        invocation fallback: fallback.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1090
        "Install it"
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1091
        proxy addGuard: invocation.
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1092
    ].
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1093
    "/Finally, return the method                                
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1094
    ^ proxy
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1095
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1096
    "Created: / 16-12-2011 / 23:06:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
  1097
! !
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
  1098
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
  1099
!JavaLookup class methodsFor:'documentation'!
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
  1100
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1101
version_CVS
3360
1a8899091305 Merged with mercurial revision cb6c15e66be (594 changesets total)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3041
diff changeset
  1102
    ^ '$Header: /cvs/stx/stx/libjava/JavaLookup.st,v 1.7 2015-01-28 02:10:50 vrany Exp $'
2293
d272dc6897a6 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2224
diff changeset
  1103
!
d272dc6897a6 fixed: #version_SVN ($ to §)
Claus Gittinger <cg@exept.de>
parents: 2224
diff changeset
  1104
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1105
version_HG
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1106
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1107
    ^ '$Changeset: <not expanded> $'
2224
03ad71af7cf0 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 2152
diff changeset
  1108
!
03ad71af7cf0 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 2152
diff changeset
  1109
749
e898eaeff091 Synchronized with CVS repository at:
vranyj1
parents:
diff changeset
  1110
version_SVN
2731
13f5be2bf83b Merged d87e89dd5276 and fe83a843a7bf (branch default - CVS HEAD)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2711 2678
diff changeset
  1111
    ^ 'Id'
2152
1cbdfbcc685c Jan's version
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 749
diff changeset
  1112
! !
2353
fa7400d022a0 Updated to https://swing.fit.cvut.cz/hg/stx.libjava/rev/31f8b995905e
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2293
diff changeset
  1113
2976
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
  1114
a384a02381c0 Update JavaLookup to work with new JIT-compilation scheme...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 2841
diff changeset
  1115
JavaLookup initialize!