Skip to content

Commit 475ae60

Browse files
dbwiddismatthiasblaesing
authored andcommitted
Fix Sysinfo FieldOrder
Fixes: #1027
1 parent 41d5123 commit 475ae60

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Features
1111
Bug Fixes
1212
---------
1313
* [#1025](https://github.com/java-native-access/jna/pull/1025): Restore java 6 compatibility and introduce animal-sniffer to prevent regressions - [@matthiasblaesing](https://github.com/matthiasblaesing).
14+
* [#1028](https://github.com/java-native-access/jna/pull/1028): Fix Linux LibC.Sysinfo FieldOrder - [@dbwiddis](https://github.com/dbwiddis).
1415

1516
Release 5.0.0
1617
=============

contrib/platform/src/com/sun/jna/platform/linux/LibC.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ protected List<Field> getFieldList() {
8989
@Override
9090
protected List<String> getFieldOrder() {
9191
List<String> fieldOrder = new ArrayList<String>(super.getFieldOrder());
92-
if (PADDING_SIZE > 0) {
93-
fieldOrder.add("_f");
92+
if (PADDING_SIZE == 0) {
93+
fieldOrder.remove("_f");
9494
}
9595
return fieldOrder;
9696
}

src/com/sun/jna/Structure.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -1061,7 +1061,10 @@ protected List<Field> getFields(boolean force) {
10611061
if (fieldOrder.size() != flist.size() && flist.size() > 1) {
10621062
if (force) {
10631063
throw new Error("Structure.getFieldOrder() on " + getClass()
1064-
+ " does not provide enough names [" + fieldOrder.size()
1064+
+ (fieldOrder.size() < flist.size()
1065+
? " does not provide enough"
1066+
: " provides too many")
1067+
+ " names [" + fieldOrder.size()
10651068
+ "] ("
10661069
+ sort(fieldOrder)
10671070
+ ") to match declared fields [" + flist.size()

0 commit comments

Comments
 (0)