2
2
// for details. All rights reserved. Use of this source code is governed by a
3
3
// BSD-style license that can be found in the LICENSE file.
4
4
5
- // ignore_for_file: unnecessary_cast
5
+ // ignore_for_file: unnecessary_cast, overridden_fields
6
6
7
- part of 'types.dart' ;
7
+ import 'dart:ffi' ;
8
+
9
+ import 'package:collection/collection.dart' ;
10
+ import 'package:ffi/ffi.dart' ;
11
+ import 'package:jni/src/accessors.dart' ;
12
+ import 'package:jni/src/third_party/generated_bindings.dart' ;
13
+
14
+ import 'jni.dart' ;
15
+ import 'jobject.dart' ;
16
+ import 'jprimitives.dart' ;
17
+ import 'types.dart' ;
8
18
9
19
class JArrayType <T > extends JObjType <JArray <T >> {
10
20
final JType <T > elementType;
@@ -38,7 +48,7 @@ class JArray<E> extends JObject {
38
48
final JType <E > elementType;
39
49
40
50
@override
41
- JArrayType <E > get $type => (_$ type ?? = type (elementType) ) as JArrayType <E >;
51
+ late final JArrayType <E > $type = type (elementType) as JArrayType <E >;
42
52
43
53
/// The type which includes information such as the signature of this class.
44
54
static JObjType <JArray <T >> type <T >(JType <T > innerType) =>
@@ -52,18 +62,18 @@ class JArray<E> extends JObject {
52
62
///
53
63
/// The [length] must be a non-negative integer.
54
64
factory JArray (JType <E > type, int length) {
55
- if (type._type == JniCallType .objectType && type is JObjType ) {
65
+ if (type.callType == JniCallType .objectType && type is JObjType ) {
56
66
final clazz = (type as JObjType ).getClass ();
57
67
final array = JArray <E >.fromRef (
58
68
type,
59
- _accessors .newObjectArray (length, clazz.reference, nullptr).object,
69
+ Jni .accessors .newObjectArray (length, clazz.reference, nullptr).object,
60
70
);
61
71
clazz.delete ();
62
72
return array;
63
73
}
64
74
return JArray .fromRef (
65
75
type,
66
- _accessors. newPrimitiveArray (length, type._type ).object,
76
+ Jni .accessors. newPrimitiveArray (length, type.callType ).object,
67
77
);
68
78
}
69
79
@@ -76,7 +86,9 @@ class JArray<E> extends JObject {
76
86
final clazz = fill.getClass ();
77
87
final array = JArray <E >.fromRef (
78
88
fill.$type as JObjType <E >,
79
- _accessors.newObjectArray (length, clazz.reference, fill.reference).object,
89
+ Jni .accessors
90
+ .newObjectArray (length, clazz.reference, fill.reference)
91
+ .object,
80
92
);
81
93
clazz.delete ();
82
94
return array;
@@ -86,12 +98,12 @@ class JArray<E> extends JObject {
86
98
87
99
JniResult elementAt (int index, int type) {
88
100
RangeError .checkValidIndex (index, this );
89
- return _accessors .getArrayElement (reference, index, type);
101
+ return Jni .accessors .getArrayElement (reference, index, type);
90
102
}
91
103
92
104
/// The number of elements in this array.
93
105
int get length {
94
- return _length ?? = _env .GetArrayLength (reference);
106
+ return _length ?? = Jni .env .GetArrayLength (reference);
95
107
}
96
108
}
97
109
@@ -107,7 +119,7 @@ extension NativeArray<E extends JPrimitive> on JArray<E> {
107
119
}
108
120
}
109
121
110
- extension BoolArray on JArray <JBoolean > {
122
+ extension BoolArray on JArray <jboolean > {
111
123
bool operator [](int index) {
112
124
return elementAt (index, JniCallType .booleanType).boolean;
113
125
}
@@ -116,7 +128,7 @@ extension BoolArray on JArray<JBoolean> {
116
128
RangeError .checkValidIndex (index, this );
117
129
_allocate <JBooleanMarker >(sizeOf <JBooleanMarker >(), (ptr) {
118
130
ptr.value = value ? 1 : 0 ;
119
- _env .SetBooleanArrayRegion (reference, index, 1 , ptr);
131
+ Jni .env .SetBooleanArrayRegion (reference, index, 1 , ptr);
120
132
});
121
133
}
122
134
@@ -129,12 +141,12 @@ extension BoolArray on JArray<JBoolean> {
129
141
it.forEachIndexed ((index, element) {
130
142
ptr[index] = element ? 1 : 0 ;
131
143
});
132
- _env .SetBooleanArrayRegion (reference, start, size, ptr);
144
+ Jni .env .SetBooleanArrayRegion (reference, start, size, ptr);
133
145
});
134
146
}
135
147
}
136
148
137
- extension ByteArray on JArray <JByte > {
149
+ extension ByteArray on JArray <jbyte > {
138
150
int operator [](int index) {
139
151
return elementAt (index, JniCallType .byteType).byte;
140
152
}
@@ -143,7 +155,7 @@ extension ByteArray on JArray<JByte> {
143
155
RangeError .checkValidIndex (index, this );
144
156
_allocate <JByteMarker >(sizeOf <JByteMarker >(), (ptr) {
145
157
ptr.value = value;
146
- _env .SetByteArrayRegion (reference, index, 1 , ptr);
158
+ Jni .env .SetByteArrayRegion (reference, index, 1 , ptr);
147
159
});
148
160
}
149
161
@@ -156,12 +168,12 @@ extension ByteArray on JArray<JByte> {
156
168
it.forEachIndexed ((index, element) {
157
169
ptr[index] = element;
158
170
});
159
- _env .SetByteArrayRegion (reference, start, size, ptr);
171
+ Jni .env .SetByteArrayRegion (reference, start, size, ptr);
160
172
});
161
173
}
162
174
}
163
175
164
- extension CharArray on JArray <JChar > {
176
+ extension CharArray on JArray <jchar > {
165
177
String operator [](int index) {
166
178
return String .fromCharCode (
167
179
elementAt (index, JniCallType .charType).char,
@@ -172,7 +184,7 @@ extension CharArray on JArray<JChar> {
172
184
RangeError .checkValidIndex (index, this );
173
185
_allocate <JCharMarker >(sizeOf <JCharMarker >(), (ptr) {
174
186
ptr.value = value.codeUnits.first;
175
- _env .SetCharArrayRegion (reference, index, 1 , ptr);
187
+ Jni .env .SetCharArrayRegion (reference, index, 1 , ptr);
176
188
});
177
189
}
178
190
@@ -185,12 +197,12 @@ extension CharArray on JArray<JChar> {
185
197
it.forEachIndexed ((index, element) {
186
198
ptr[index] = element.codeUnits.first;
187
199
});
188
- _env .SetCharArrayRegion (reference, start, size, ptr);
200
+ Jni .env .SetCharArrayRegion (reference, start, size, ptr);
189
201
});
190
202
}
191
203
}
192
204
193
- extension ShortArray on JArray <JShort > {
205
+ extension ShortArray on JArray <jshort > {
194
206
int operator [](int index) {
195
207
return elementAt (index, JniCallType .shortType).short;
196
208
}
@@ -199,7 +211,7 @@ extension ShortArray on JArray<JShort> {
199
211
RangeError .checkValidIndex (index, this );
200
212
_allocate <JShortMarker >(sizeOf <JShortMarker >(), (ptr) {
201
213
ptr.value = value;
202
- _env .SetShortArrayRegion (reference, index, 1 , ptr);
214
+ Jni .env .SetShortArrayRegion (reference, index, 1 , ptr);
203
215
});
204
216
}
205
217
@@ -212,12 +224,12 @@ extension ShortArray on JArray<JShort> {
212
224
it.forEachIndexed ((index, element) {
213
225
ptr[index] = element;
214
226
});
215
- _env .SetShortArrayRegion (reference, start, size, ptr);
227
+ Jni .env .SetShortArrayRegion (reference, start, size, ptr);
216
228
});
217
229
}
218
230
}
219
231
220
- extension IntArray on JArray <JInt > {
232
+ extension IntArray on JArray <jint > {
221
233
int operator [](int index) {
222
234
return elementAt (index, JniCallType .intType).integer;
223
235
}
@@ -226,7 +238,7 @@ extension IntArray on JArray<JInt> {
226
238
RangeError .checkValidIndex (index, this );
227
239
_allocate <JIntMarker >(sizeOf <JIntMarker >(), (ptr) {
228
240
ptr.value = value;
229
- _env .SetIntArrayRegion (reference, index, 1 , ptr);
241
+ Jni .env .SetIntArrayRegion (reference, index, 1 , ptr);
230
242
});
231
243
}
232
244
@@ -239,12 +251,12 @@ extension IntArray on JArray<JInt> {
239
251
it.forEachIndexed ((index, element) {
240
252
ptr[index] = element;
241
253
});
242
- _env .SetIntArrayRegion (reference, start, size, ptr);
254
+ Jni .env .SetIntArrayRegion (reference, start, size, ptr);
243
255
});
244
256
}
245
257
}
246
258
247
- extension LongArray on JArray <JLong > {
259
+ extension LongArray on JArray <jlong > {
248
260
int operator [](int index) {
249
261
return elementAt (index, JniCallType .longType).long;
250
262
}
@@ -253,7 +265,7 @@ extension LongArray on JArray<JLong> {
253
265
RangeError .checkValidIndex (index, this );
254
266
_allocate <JLongMarker >(sizeOf <JLongMarker >(), (ptr) {
255
267
ptr.value = value;
256
- _env .SetLongArrayRegion (reference, index, 1 , ptr);
268
+ Jni .env .SetLongArrayRegion (reference, index, 1 , ptr);
257
269
});
258
270
}
259
271
@@ -266,12 +278,12 @@ extension LongArray on JArray<JLong> {
266
278
it.forEachIndexed ((index, element) {
267
279
ptr[index] = element;
268
280
});
269
- _env .SetLongArrayRegion (reference, start, size, ptr);
281
+ Jni .env .SetLongArrayRegion (reference, start, size, ptr);
270
282
});
271
283
}
272
284
}
273
285
274
- extension FloatArray on JArray <JFloat > {
286
+ extension FloatArray on JArray <jfloat > {
275
287
double operator [](int index) {
276
288
return elementAt (index, JniCallType .floatType).float;
277
289
}
@@ -280,7 +292,7 @@ extension FloatArray on JArray<JFloat> {
280
292
RangeError .checkValidIndex (index, this );
281
293
_allocate <JFloatMarker >(sizeOf <JFloatMarker >(), (ptr) {
282
294
ptr.value = value;
283
- _env .SetFloatArrayRegion (reference, index, 1 , ptr);
295
+ Jni .env .SetFloatArrayRegion (reference, index, 1 , ptr);
284
296
});
285
297
}
286
298
@@ -293,12 +305,12 @@ extension FloatArray on JArray<JFloat> {
293
305
it.forEachIndexed ((index, element) {
294
306
ptr[index] = element;
295
307
});
296
- _env .SetFloatArrayRegion (reference, start, size, ptr);
308
+ Jni .env .SetFloatArrayRegion (reference, start, size, ptr);
297
309
});
298
310
}
299
311
}
300
312
301
- extension DoubleArray on JArray <JDouble > {
313
+ extension DoubleArray on JArray <jdouble > {
302
314
double operator [](int index) {
303
315
return elementAt (index, JniCallType .doubleType).doubleFloat;
304
316
}
@@ -307,7 +319,7 @@ extension DoubleArray on JArray<JDouble> {
307
319
RangeError .checkValidIndex (index, this );
308
320
_allocate <JDoubleMarker >(sizeOf <JDoubleMarker >(), (ptr) {
309
321
ptr.value = value;
310
- _env .SetDoubleArrayRegion (reference, index, 1 , ptr);
322
+ Jni .env .SetDoubleArrayRegion (reference, index, 1 , ptr);
311
323
});
312
324
}
313
325
@@ -320,7 +332,7 @@ extension DoubleArray on JArray<JDouble> {
320
332
it.forEachIndexed ((index, element) {
321
333
ptr[index] = element;
322
334
});
323
- _env .SetDoubleArrayRegion (reference, start, size, ptr);
335
+ Jni .env .SetDoubleArrayRegion (reference, start, size, ptr);
324
336
});
325
337
}
326
338
}
@@ -333,7 +345,7 @@ extension ObjectArray<T extends JObject> on JArray<T> {
333
345
334
346
void operator []= (int index, T value) {
335
347
RangeError .checkValidIndex (index, this );
336
- _env .SetObjectArrayElement (reference, index, value.reference);
348
+ Jni .env .SetObjectArrayElement (reference, index, value.reference);
337
349
}
338
350
339
351
void setRange (int start, int end, Iterable <T > iterable, [int skipCount = 0 ]) {
0 commit comments