| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2abb40b0ca9a6a06bdbe3e66b4235301ed15c693; Updated GlueGen_Mapping.md
Original comment of commit 2abb40b0ca9a6a06bdbe3e66b4235301ed15c693
wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf
Revised comment taken from unmerged updated branch f6de3646acf0fdadf55708fd8a1c42fbd8663bc5
wip(test_case): Example of test case for issue related of 927bbc7160a812bb29c0e7120d4a3009bfb13bbf
Some short summary of modifications :
* Add tests with each emitters for test2, but tests are shared and run for each emitters
* Update JavaParser.g to allow parsing of bindings generated after test2 processing
* Add basic management of generic type (But not yet retrieved inside classTypeSpec args)
* Add basic management of annotations (with or w/o parameter(s)) (Retrieved in statement, classes and interfaces but not used)
* Align lexer constants in JavaParser.g
* Update JavaParser.g to allow fetching all inner classes and inner interfaces to allow excluding by ExtendedInterfaceSymbolsIgnore
* Modify JavaConfiguration::requiresJavaCallbackCode because all callback need to force generation not only callback without user param
* Functions not generated w/o JavaConfiguration::requiresJavaCallbackCode :
* SetLogCallBack12a
* SetLogCallBack12b
* MessageCallback11b
* alBufferCallback0
|
| |
|
|
|
|
| |
path in unit test script for library-path
|
|
|
|
| |
intermediate 'Test' for supporting, non-test classes
|
|
|
|
| |
intermediate 'Test' for supporting, non-test classes
|
|
|
|
| |
'Test' for supporting, non-test classes
|
|
|
|
|
|
| |
JavaCallback cases no just non-userParam case
Additional body code for JavaCallback is required for methods it.
|
|
|
|
|
|
| |
to load the tool library dynamically, hence dropped.
Just ensure GlueGen itself is initializes via Platform.initSingleton() in common BaseClass
|
|
|
|
| |
issue loadBindingtest2p2() not loadBindingtest2p1()
|
| |
|
|
|
|
| |
'IncludeAs' for both implementations, Bindingtest2p1Impl and Bindingtest2p2Impl
|
|
|
|
| |
test2 not test1
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
927bbc7160a812bb29c0e7120d4a3009bfb13bbf
Almost done
|
|\ \
| | |
| | |
| | | |
'Mathieu_Fery/feature/prevent_callback_generation_if_setter_is_absent'
|
| | |
| | |
| | |
| | | |
related isn't present
|
|\ \ \
| | | |
| | | |
| | | | |
'Mathieu_Fery/feat/array_accessor_with_getter_of_field_in_pascal_case'
|
| |/ /
| | |
| | |
| | | |
with field with name in PascalCase or camelCase
|
| |/
|/|
| |
| |
| |
| | |
JavaConfiguration.requiresJavaCallbackCode()"
This reverts commit 927bbc7160a812bb29c0e7120d4a3009bfb13bbf.
|
| |
| |
| |
| | |
and produce html page
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Method was encapsulated in commit d4e8ecc3b4f68b86d95ec951971a0fea20217988
and questioned whether it is required.
The non-userParam callback case adds no additional code requirements.
Both, callback with and without userParam shares same code path
and the respective native static fields.
Only that the non-userParam code path adds additional native static fields,
but all code sections are produced in both cases.
Passed all unit tests.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
types in equals and hashCode, i.e. use memory identity
Use case is having a compound-type as userParam, which also acts as key, see MessageCallback13, Test4JavaCallback.chapter13().
The Java compound instance is re-created using the actual identical native memory (address),
which has been stored or passed in the native toolkit.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
'String')
Use case: String type as userParam, barely tested and not useful.
However, let's pass through all cases in our code.
Added LOG INFO for mapped types.
|
| |
| |
| |
| |
| |
| |
| |
| | |
STRING_CHARS_PREFIX or javaCallbackEmitter.emitCOptArgumentSuffix(..)
We only produce one variant in code.
Use case: String type as userParam (barely tested and not useful)
|
| |
| |
| |
| |
| |
| |
| |
| | |
compound equals and add chapter12b for additional parameter with different order
- ad-hoc compound equals must compare value, since native code creates a new class instance from native struct
- Add additional case with addition callback argument for further validation
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TBD: Is this even required?
- needsIntermediateOperation -> needsJavaCallbackCode
- Use JavaConfiguration.requiresJavaCallbackCode(..)
TBD: Is this even required?
As far as I see, the non-userParam callback case adds no additional code requirements.
Both, callback with and without userParam shares same code path
and the respective native static fields.
Only that the non-userParam code path adds additional native static fields,
but all code sections are produced in both cases.
|
| |
| |
| |
| |
| |
| |
| |
| | |
and passed 'jcbFuncCMethodEmitter' only to invoke CMethodBindingEmitter.emitBodyMapCToJNIType(..)
Passed 'jcbFuncCMethodEmitter' only used to access CMethodBindingEmitter.emitBodyMapCToJNIType(int, boolean), a non-ideal hack! (FIXME)
General processing shall use the local `info.cbFuncBinding`.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
arg 'MethodBinding jcbFuncCMethodBinding', use local 'info.cbFuncBinding'
Since emitJavaCallbackBodyPassJavaArguments() is private now,
only use case is to handle info.cbFuncBinding and we can drop the redundant argument.
Similar to cleanup commit e9a2294b3f18bb4c4f38347ccf347058cb4642b3
|
| |
| |
| |
| |
| |
| |
| | |
'CMethodBindingEmitter jcbFuncCMethodEmitter', use local 'info.cbFuncBinding'
Was added in commit ad69716fda64b517c33ed847c4b215ea398aac99 'callback without userData',
while adding ad-hoc compound conversion.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
emitJavaCallbackBodyPassJavaArguments}(): Fix exclusion of ad-hoc compound conversion for userParam
Passed CMethodBindingEmitter denotes the callback-function, including the binding.
The new iteration to handle the ad-hoc compound conversion,
introduced in commit ad69716fda64b517c33ed847c4b215ea398aac99 'callback without userData',
iterates over the callback-function argument list.
Hence it shall only exclude the ad-hoc compound conversion
if index != info.cbFuncUserParamIdx.
Dropping the addition exclusion 'i != info.setFuncUserParamIdx'.
|
| |
| |
| |
| | |
emitJavaCallbackBodyPassJavaArguments}(): Use capitalized sub-string 'baseArgName' for (static) callback related entities
|
| |
| |
| |
| | |
'userParamDefined' case (cleanup)
|
| |
| |
| |
| | |
NIO ByteBuffer generation (isNIOBuffer || isCompoundTypeWrapper)
|
|\ \
| | |
| | |
| | | |
'Mathieu_Fery/feature/java_callback_without_user_data' into pulled
|
| | |
| | |
| | |
| | | |
userData
|
| |/ |
|
|/
|
|
| |
compound attribute
|
|
|
|
|
|
| |
discount today)
Cough cough .. should have reviewed the whole thing once. Must be the summer distraction causing premature commits. Sorry about that :)
|
|
|
|
| |
occassions)
|
| |
|
|
|
|
| |
non-compound `UserParam` types to have more clarity in resulting API
|
| |
|
|
|
|
|
|
|
|
|
| |
Resolves use case where UserParam reflects e.g. a context (AL_SOFT_events)
and will be (part of) the key mapping.
Implementation required an additional userParamID -> userParam mapping for default Object/ID usage.
Added 2 test cases.
|
|
|
|
| |
CallbackFunction parameter index
|
|
|
|
| |
JavaCallbackDef/JavaCallbackKey: Always define both parameter indices; emitJavaStaticCallback(): Use cbFuncBinding and cbFuncKeyIndices from callback parameter to build key
|
|
|
|
|
|
| |
NewGlobalRef() for jclass (not required for static jmethodID)
Also use a longer jclass argument name 'clazz' -> 'staticCBClazz' to avoid potential collisions
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
prelim code for JavaCallback use-case emitBodyMapCToJNIType()
It is common in toolkit APIs that a string might not be passed as a 'nul' terminated (EOS) C string,
but as a Pascal string with a given length argument.
A C string is specied as
ArgumentIsString alEventCallbackInject 3
while allowing multiple indices ..
A Pascal string can be specified as
ArgumentIsPascalString ALEVENTPROCSOFT 3 4
while allowing multiple indice-tuples for length and value ..
The tuple consist of the length agrument-index first (usually an int)
followed by the value argument-index (usually a 'char*').
+++
CMethodBindingEmitter.emitBodyMapCToJNIType(), where PascalString is implemented,
is currently being used for
- JNI return statement (no PascalString impact possible)
- JavaCallback C type -> JNI type, PascalString impacting
|