Skip to content

Commit d7ab38f

Browse files
matthiasblaesingneilcsmith-net
authored andcommitted
Remove deprecated/discouraged usages of JNA constructs (#102)
* Replace usage of Pointer#SIZE with Native#POINTER_SIZE Pointer#SIZE will be removed from the JNA codebase (it is already removed in master) as it is the root of class loading deadlocks. * Replace deprecated usage of Pointer#getString and Pointer#setString Pointer#setString(int offset, String value, boolean wide) was replaced by the two methods: Pointer#setString(int offset, String value) and Pointer#setWideString(int offset, String value) The same holds true for the getter.
1 parent ba2752f commit d7ab38f

File tree

11 files changed

+25
-19
lines changed

11 files changed

+25
-19
lines changed

src/org/freedesktop/gstreamer/GObject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ private GObjectAPI.GParamSpec[] listProperties() {
356356
int offset = 0;
357357
for (int i = 0; i < len.getValue(); i++) {
358358
props[i] = new GObjectAPI.GParamSpec(ptrs.getPointer(offset));
359-
offset += Pointer.SIZE;
359+
offset += Native.POINTER_SIZE;
360360
}
361361
return props;
362362
}

src/org/freedesktop/gstreamer/Gst.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import org.freedesktop.gstreamer.lowlevel.NativeObject;
5555

5656
import com.sun.jna.Memory;
57+
import com.sun.jna.Native;
5758
import com.sun.jna.Pointer;
5859
import com.sun.jna.ptr.IntByReference;
5960
import com.sun.jna.ptr.PointerByReference;
@@ -84,18 +85,18 @@ public NativeArgs(String progname, String[] args) {
8485
// Allocate some native memory to pass the args down to the native layer
8586
//
8687
argsCopy = new Memory[args.length + 2];
87-
argvMemory = new Memory(argsCopy.length * Pointer.SIZE);
88+
argvMemory = new Memory(argsCopy.length * Native.POINTER_SIZE);
8889

8990
//
9091
// Insert the program name as argv[0]
9192
//
9293
Memory arg = new Memory(progname.getBytes().length + 4);
93-
arg.setString(0, progname, false);
94+
arg.setString(0, progname);
9495
argsCopy[0] = arg;
9596

9697
for (int i = 0; i < args.length; i++) {
9798
arg = new Memory(args[i].getBytes().length + 1);
98-
arg.setString(0, args[i], false);
99+
arg.setString(0, args[i]);
99100
argsCopy[i + 1] = arg;
100101
}
101102
argvMemory.write(0, argsCopy, 0, argsCopy.length);
@@ -109,9 +110,9 @@ String[] toStringArray() {
109110
List<String> args = new ArrayList<String>();
110111
Pointer argv = argvRef.getValue();
111112
for (int i = 1; i < argcRef.getValue(); i++) {
112-
Pointer arg = argv.getPointer(i * Pointer.SIZE);
113+
Pointer arg = argv.getPointer(i * Native.POINTER_SIZE);
113114
if (arg != null) {
114-
args.add(arg.getString(0, false));
115+
args.add(arg.getString(0));
115116
}
116117
}
117118
return args.toArray(new String[args.size()]);

src/org/freedesktop/gstreamer/TagList.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ public Object get(TagList tl, String tag, int index) {
265265
if (value[0] == null) {
266266
return null;
267267
}
268-
String ret = value[0].getString(0, false);
268+
String ret = value[0].getString(0);
269269
GLIB_API.g_free(value[0]);
270270
return ret;
271271
}

src/org/freedesktop/gstreamer/lowlevel/BaseSinkAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
import com.sun.jna.Callback;
4545
import com.sun.jna.Library;
46+
import com.sun.jna.Native;
4647
import com.sun.jna.Pointer;
4748

4849
/**
@@ -220,7 +221,7 @@ public GstBaseSinkClass(Pointer ptr) {
220221
public RenderList render_list;
221222

222223
/*< private >*/
223-
public volatile byte[] _gst_reserved = new byte[Pointer.SIZE * BaseSinkAPI.GST_PADDING_LARGE];
224+
public volatile byte[] _gst_reserved = new byte[Native.POINTER_SIZE * BaseSinkAPI.GST_PADDING_LARGE];
224225

225226
@Override
226227
protected List<String> getFieldOrder() {

src/org/freedesktop/gstreamer/lowlevel/BaseSrcAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434

3535
import com.sun.jna.Callback;
3636
import com.sun.jna.Library;
37+
import com.sun.jna.Native;
3738
import com.sun.jna.Pointer;
3839
import com.sun.jna.Union;
3940
import com.sun.jna.ptr.LongByReference;
@@ -229,7 +230,7 @@ public GstBaseSrcClass(Pointer ptr) {
229230
public PrepareSeek prepare_seek_segment;
230231

231232
/*< private >*/
232-
public volatile byte[] _gst_reserved = new byte[Pointer.SIZE * (GST_PADDING_LARGE - 6)];
233+
public volatile byte[] _gst_reserved = new byte[Native.POINTER_SIZE * (GST_PADDING_LARGE - 6)];
233234

234235
@Override
235236
protected List<String> getFieldOrder() {

src/org/freedesktop/gstreamer/lowlevel/BaseTransformAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
import com.sun.jna.Callback;
3535
import com.sun.jna.Library;
36+
import com.sun.jna.Native;
3637
import com.sun.jna.Pointer;
3738
import com.sun.jna.ptr.IntByReference;
3839
import java.util.Arrays;
@@ -175,7 +176,7 @@ public GstBaseTransformClass(Pointer ptr) {
175176
public AcceptCaps accept_caps;
176177

177178
/*< private >*/
178-
public volatile byte[] _gst_reserved = new byte[Pointer.SIZE * (GST_PADDING_LARGE - 3)];
179+
public volatile byte[] _gst_reserved = new byte[Native.POINTER_SIZE * (GST_PADDING_LARGE - 3)];
179180

180181
@Override
181182
protected List<String> getFieldOrder() {

src/org/freedesktop/gstreamer/lowlevel/GObjectAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131

3232
import com.sun.jna.Callback;
3333
import com.sun.jna.Library;
34+
import com.sun.jna.Native;
3435
import com.sun.jna.NativeLong;
3536
import com.sun.jna.Pointer;
3637
import com.sun.jna.Structure.ByReference;
@@ -178,7 +179,7 @@ public static final class GObjectClass extends com.sun.jna.Structure {
178179
public Finalize finalize;
179180
public volatile Pointer dispatch_properties_changed;
180181
public Notify notify;
181-
public volatile byte[] p_dummy = new byte[8 * Pointer.SIZE];
182+
public volatile byte[] p_dummy = new byte[8 * Native.POINTER_SIZE];
182183

183184
public static interface Constructor extends Callback {
184185
public Pointer callback(GType type, int n_construct_properties,

src/org/freedesktop/gstreamer/lowlevel/GTypeMapper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.sun.jna.FromNativeConverter;
3838
import com.sun.jna.MethodParameterContext;
3939
import com.sun.jna.MethodResultContext;
40+
import com.sun.jna.Native;
4041
import com.sun.jna.Pointer;
4142
import com.sun.jna.StructureReadContext;
4243
import com.sun.jna.ToNativeContext;
@@ -230,7 +231,7 @@ public Object fromNative(Object arg0, FromNativeContext arg1) {
230231
}
231232

232233
public Class<?> nativeType() {
233-
return Pointer.SIZE == 8 ? Long.class : Integer.class;
234+
return Native.POINTER_SIZE == 8 ? Long.class : Integer.class;
234235
}
235236
};
236237
private TypeConverter querytypeConverter = new TypeConverter() {

src/org/freedesktop/gstreamer/lowlevel/GstAPI.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.freedesktop.gstreamer.lowlevel.annotations.CallerOwnsReturn;
2424

2525
import com.sun.jna.Library;
26+
import com.sun.jna.Native;
2627
import com.sun.jna.Pointer;
2728
import com.sun.jna.ptr.IntByReference;
2829
import com.sun.jna.ptr.PointerByReference;
@@ -87,7 +88,7 @@ public GstSegmentStruct(int flags, double rate, double applied_rate, Format form
8788
public long duration;
8889

8990
/*< private >*/
90-
public volatile byte[] _gst_reserved = new byte[(Pointer.SIZE * GST_PADDING) - (Double.SIZE / 8)];
91+
public volatile byte[] _gst_reserved = new byte[(Native.POINTER_SIZE * GST_PADDING) - (Double.SIZE / 8)];
9192

9293
@Override
9394
protected List<String> getFieldOrder() {

src/org/freedesktop/gstreamer/lowlevel/GstPadTemplateAPI.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package org.freedesktop.gstreamer.lowlevel;
2121

22+
import com.sun.jna.Native;
2223
import org.freedesktop.gstreamer.Caps;
2324
import org.freedesktop.gstreamer.Pad;
2425
import org.freedesktop.gstreamer.PadDirection;
@@ -29,8 +30,6 @@
2930

3031
import com.sun.jna.Pointer;
3132
import com.sun.jna.PointerType;
32-
import java.util.Arrays;
33-
import java.util.List;
3433

3534
/**
3635
* GstPadTemplate functions
@@ -69,11 +68,11 @@ public String getName() {
6968
}
7069

7170
public PadDirection getPadDirection() {
72-
return PadDirection.values()[getPointer().getInt(Pointer.SIZE)];
71+
return PadDirection.values()[getPointer().getInt(Native.POINTER_SIZE)];
7372
}
7473

7574
public PadPresence getPadPresence() {
76-
return PadPresence.values()[getPointer().getInt(Pointer.SIZE + 4)];
75+
return PadPresence.values()[getPointer().getInt(Native.POINTER_SIZE + 4)];
7776
}
7877
}
7978

0 commit comments

Comments
 (0)