Skip to content

Commit

Permalink
[jnigen] Fix 32-bit architecture bug; Close #1188 (#1190)
Browse files Browse the repository at this point in the history
  • Loading branch information
HosseinYousefi committed Jun 5, 2024
1 parent 0f90ac4 commit 62e22c1
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 128 deletions.
6 changes: 6 additions & 0 deletions pkgs/jnigen/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 0.9.2

- Fixed a bug where wrong argument types were generated for 32-bit
architectures. This temporarily breaks generated bindings for macOS arm64,
until the fix is cherry-picked on Dart stable.

## 0.9.1

- Fixed a bug in summarizer where standard output would use the default encoding
Expand Down
64 changes: 32 additions & 32 deletions pkgs/jnigen/example/in_app_java/lib/android_utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ class EmojiCompat_Config extends jni.JObject {
static final _setReplaceAll = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -217,7 +217,7 @@ class EmojiCompat_Config extends jni.JObject {
static final _setUseEmojiAsDefaultStyle = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -257,7 +257,7 @@ class EmojiCompat_Config extends jni.JObject {
jni.JniResult Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64, ffi.Pointer<ffi.Void>)>)>>(
ffi.VarArgs<(ffi.Uint8, ffi.Pointer<ffi.Void>)>)>>(
"globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int,
Expand Down Expand Up @@ -298,7 +298,7 @@ class EmojiCompat_Config extends jni.JObject {
static final _setEmojiSpanIndicatorEnabled = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -329,7 +329,7 @@ class EmojiCompat_Config extends jni.JObject {
static final _setEmojiSpanIndicatorColor = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand All @@ -356,7 +356,7 @@ class EmojiCompat_Config extends jni.JObject {
static final _setMetadataLoadStrategy = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -649,9 +649,9 @@ class EmojiCompat_GlyphChecker extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int64,
ffi.Int64
ffi.Int32,
ffi.Int32,
ffi.Int32
)>)>>("globalEnv_CallBooleanMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -1688,7 +1688,7 @@ class EmojiCompat extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallStaticVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallStaticVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1932,7 +1932,7 @@ class EmojiCompat extends jni.JObject {
jni.JniResult Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int64)>)>>(
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int32)>)>>(
"globalEnv_CallIntMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -1971,7 +1971,7 @@ class EmojiCompat extends jni.JObject {
jni.JniResult Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int64)>)>>(
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int32)>)>>(
"globalEnv_CallIntMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2002,7 +2002,7 @@ class EmojiCompat extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int32,
ffi.Pointer<ffi.Void>
)>)>>("globalEnv_CallStaticBooleanMethod")
.asFunction<
Expand Down Expand Up @@ -2055,9 +2055,9 @@ class EmojiCompat extends jni.JObject {
(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int64,
ffi.Int64
ffi.Int32,
ffi.Int32,
ffi.Uint8
)>)>>("globalEnv_CallStaticBooleanMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2139,7 +2139,7 @@ class EmojiCompat extends jni.JObject {
jni.JniResult Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int64)>)>>(
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int32)>)>>(
"globalEnv_CallBooleanMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2177,7 +2177,7 @@ class EmojiCompat extends jni.JObject {
jni.JniResult Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int64)>)>>(
ffi.VarArgs<(ffi.Pointer<ffi.Void>, ffi.Int32)>)>>(
"globalEnv_CallIntMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2254,8 +2254,8 @@ class EmojiCompat extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int64
ffi.Int32,
ffi.Int32
)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2310,9 +2310,9 @@ class EmojiCompat extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int64,
ffi.Int64
ffi.Int32,
ffi.Int32,
ffi.Int32
)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2371,10 +2371,10 @@ class EmojiCompat extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int64,
ffi.Int64,
ffi.Int64
ffi.Int32,
ffi.Int32,
ffi.Int32,
ffi.Int32
)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2738,7 +2738,7 @@ class DefaultEmojiCompatConfig_DefaultEmojiCompatConfigHelper
(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
ffi.Int64
ffi.Int32
)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -2888,7 +2888,7 @@ class DefaultEmojiCompatConfig_DefaultEmojiCompatConfigHelper_API19
(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
ffi.Int64
ffi.Int32
)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down Expand Up @@ -4158,7 +4158,7 @@ class HashMap<$K extends jni.JObject, $V extends jni.JObject>
static final _new0 = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64, ffi.Double)>)>>("globalEnv_NewObject")
ffi.VarArgs<(ffi.Int32, ffi.Float)>)>>("globalEnv_NewObject")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int, double)>();
Expand All @@ -4185,7 +4185,7 @@ class HashMap<$K extends jni.JObject, $V extends jni.JObject>
static final _new1 = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_NewObject")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_NewObject")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -4999,7 +4999,7 @@ class AndroidUtils extends jni.JObject {
(
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>,
ffi.Int64
ffi.Int32
)>)>>("globalEnv_CallStaticVoidMethod")
.asFunction<
jni.JThrowablePtr Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ class Notifications extends jni.JObject {
ffi.VarArgs<
(
ffi.Pointer<ffi.Void>,
ffi.Int64,
ffi.Int32,
ffi.Pointer<ffi.Void>,
ffi.Pointer<ffi.Void>
)>)>>("globalEnv_CallStaticVoidMethod")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ class PDDocument extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1883,7 +1883,7 @@ class PDDocument extends jni.JObject {
static final _getPage = ProtectedJniExtensions.lookup<
ffi.NativeFunction<
jni.JniResult Function(ffi.Pointer<ffi.Void>, jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallObjectMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallObjectMethod")
.asFunction<
jni.JniResult Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -2089,7 +2089,7 @@ class PDDocument extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -2200,7 +2200,7 @@ class PDDocument extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Double,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Float,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, double)>();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -744,7 +744,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -799,7 +799,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Int32,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1059,7 +1059,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1117,7 +1117,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1287,7 +1287,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1343,7 +1343,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Int64,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Uint8,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, int)>();
Expand Down Expand Up @@ -1406,7 +1406,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Double,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Float,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, double)>();
Expand Down Expand Up @@ -1463,7 +1463,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Double,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Float,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, double)>();
Expand Down Expand Up @@ -1522,7 +1522,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Double,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Float,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, double)>();
Expand Down Expand Up @@ -1579,7 +1579,7 @@ class PDFTextStripper extends jni.JObject {
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>,
jni.JMethodIDPtr,
ffi.VarArgs<(ffi.Double,)>)>>("globalEnv_CallVoidMethod")
ffi.VarArgs<(ffi.Float,)>)>>("globalEnv_CallVoidMethod")
.asFunction<
jni.JThrowablePtr Function(
ffi.Pointer<ffi.Void>, jni.JMethodIDPtr, double)>();
Expand Down
9 changes: 0 additions & 9 deletions pkgs/jnigen/lib/src/bindings/dart_generator.dart
Original file line number Diff line number Diff line change
Expand Up @@ -863,15 +863,6 @@ class _TypeSig extends TypeVisitor<String> {

@override
String visitPrimitiveType(PrimitiveType node) {
if (isFfi) {
// TODO(https://github.com/dart-lang/sdk/issues/55471): Once this lands in
// the stable, use the actual types instead.
if (node.name == 'float' || node.name == 'double') {
return '$_ffi.Double';
} else {
return '$_ffi.Int64';
}
}
if (isFfi) return '$_ffi.${node.ffiType}';
if (node.name == 'boolean') return 'int';
return node.dartType;
Expand Down
2 changes: 1 addition & 1 deletion pkgs/jnigen/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

name: jnigen
description: A Dart bindings generator for Java and Kotlin that uses JNI under the hood to interop with Java virtual machine.
version: 0.9.1
version: 0.9.2
repository: https://github.com/dart-lang/native/tree/main/pkgs/jnigen

environment:
Expand Down
Loading

0 comments on commit 62e22c1

Please sign in to comment.