Closed
Bug 1352177
Opened 7 years ago
Closed 7 years ago
Annotation processor can not differentiate overloaded java functions
Categories
(GeckoView :: General, defect)
GeckoView
General
Tracking
(firefox55 fixed)
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox55 | --- | fixed |
People
(Reporter: rbarker, Assigned: jchen)
References
(Blocks 1 open bug)
Details
Attachments
(3 files)
8.42 KB,
patch
|
snorp
:
review+
|
Details | Diff | Splinter Review |
32.04 KB,
patch
|
snorp
:
review+
|
Details | Diff | Splinter Review |
5.36 KB,
patch
|
snorp
:
review+
|
Details | Diff | Splinter Review |
Trying to create bindings for android.graphics.Bitmap produce the following compile time errors: 0:35.48 In file included from /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.cpp:7:0: 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.h:625:10: error: 'nsresult mozilla::java::sdk::Bitmap::GetScaledHeight(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' cannot be overloaded 0:35.48 auto GetScaledHeight(mozilla::jni::Object::Param, int32_t*) const -> nsresult; 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.h:585:10: error: with 'nsresult mozilla::java::sdk::Bitmap::GetScaledHeight(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' 0:35.48 auto GetScaledHeight(mozilla::jni::Object::Param, int32_t*) const -> nsresult; 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.h:685:10: error: 'nsresult mozilla::java::sdk::Bitmap::GetScaledWidth(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' cannot be overloaded 0:35.48 auto GetScaledWidth(mozilla::jni::Object::Param, int32_t*) const -> nsresult; 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.h:645:10: error: with 'nsresult mozilla::java::sdk::Bitmap::GetScaledWidth(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' 0:35.48 auto GetScaledWidth(mozilla::jni::Object::Param, int32_t*) const -> nsresult; 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.cpp:324:6: error: redefinition of 'nsresult mozilla::java::sdk::Bitmap::GetScaledHeight(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' 0:35.48 auto Bitmap::GetScaledHeight(mozilla::jni::Object::Param a0, int32_t* a1) const -> nsresult 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.cpp:302:6: note: 'nsresult mozilla::java::sdk::Bitmap::GetScaledHeight(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' previously defined here 0:35.48 auto Bitmap::GetScaledHeight(mozilla::jni::Object::Param a0, int32_t* a1) const -> nsresult 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.cpp:357:6: error: redefinition of 'nsresult mozilla::java::sdk::Bitmap::GetScaledWidth(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' 0:35.48 auto Bitmap::GetScaledWidth(mozilla::jni::Object::Param a0, int32_t* a1) const -> nsresult 0:35.48 ^ 0:35.48 /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings/Bitmap.cpp:335:6: note: 'nsresult mozilla::java::sdk::Bitmap::GetScaledWidth(mozilla::jni::ObjectBase<mozilla::jni::Object, _jobject*>::Param, int32_t*) const' previously defined here 0:35.48 auto Bitmap::GetScaledWidth(mozilla::jni::Object::Param a0, int32_t* a1) const -> nsresult 0:35.48 ^ 0:35.48 0:35.48 In the directory /Volumes/firefox/toolbar/obj-arm-linux-androideabi-debug/widget/android/bindings
Assignee | ||
Updated•7 years ago
|
Assignee: nobody → nchen
Status: NEW → ASSIGNED
Assignee | ||
Comment 1•7 years ago
|
||
For static final fields, generate a getter instead of a literal when specified. Used to generate bindings for runtime constants whose values are unknown at compile time.
Attachment #8862935 -
Flags: review?(snorp)
Assignee | ||
Comment 2•7 years ago
|
||
Instead of specifying a class name per line, the new format uses the .ini format, with each section name specifying the class, and each property name specifying a member of the class. WrapForJNI options can be specified with each class or member. Comments can be specified with ';' or '#'. For example, # Generate bindings for Bundle using default options: [android.os.Bundle] # Generate bindings for Bundle using class options: [android.os.Bundle = exceptionMode:nsresult] # Generate bindings for Bundle using method options: [android.os.Bundle] putInt = stubName:PutInteger # Generate bindings for Bundle using class options with method override: # (note that all options are overriden at the same time.) [android.os.Bundle = exceptionMode:nsresult] # putInt will have stubName "PutInteger", and exceptionMode of "abort" putInt = stubName:PutInteger # putChar will have stubName "PutCharacter", and exceptionMode of "nsresult" putChar = stubName:PutCharacter, exceptionMode:nsresult # Overloded methods can be specified using its signature [android.os.Bundle] # Skip the copy constructor <init>(Landroid/os/Bundle;)V = skip:true # Generic member types can be specified [android.view.KeyEvent = skip:true] # Skip everything except fields <field> = skip:false # Skip everything except putInt and putChar [android.os.Bundle = skip:true] putInt = skip:false putChar = # Avoid conflicts in native bindings [android.os.Bundle] # Bundle(PersistableBundle) native binding can conflict with Bundle(ClassLoader) <init>(Landroid/os/PersistableBundle;)V = stubName:NewFromPersistableBundle # Generate a getter instead of a literal for certain runtime constants [android.os.Build$VERSION = skip:true] SDK_INT = noLiteral:true
Attachment #8862936 -
Flags: review?(snorp)
Assignee | ||
Comment 3•7 years ago
|
||
Update the existing binding config files to the new format. Bundle is no longer used so Bundle-classes.txt is removed.
Attachment #8862937 -
Flags: review?(snorp)
Attachment #8862935 -
Flags: review?(snorp) → review+
Comment on attachment 8862936 [details] [diff] [review] 2. Introduce new config file format for SDK bindings (v1) Review of attachment 8862936 [details] [diff] [review]: ----------------------------------------------------------------- Wow, this is great!
Attachment #8862936 -
Flags: review?(snorp) → review+
Attachment #8862937 -
Flags: review?(snorp) → review+
Pushed by nchen@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/10aeb7cd6f60 1. Add a "noLiteral" option for WrapForJNI; r=snorp https://hg.mozilla.org/integration/mozilla-inbound/rev/2e2d48af1599 2. Introduce new config file format for SDK bindings; r=snorp https://hg.mozilla.org/integration/mozilla-inbound/rev/48425cb6a957 3. Update existing binding config files; r=snorp
Comment 6•7 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/10aeb7cd6f60 https://hg.mozilla.org/mozilla-central/rev/2e2d48af1599 https://hg.mozilla.org/mozilla-central/rev/48425cb6a957
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
status-firefox55:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
Updated•5 years ago
|
Product: Firefox for Android → GeckoView
Updated•5 years ago
|
Target Milestone: Firefox 55 → mozilla55
You need to log in
before you can comment on or make changes to this bug.
Description
•