From cbd1dcd3199fb130b87ca94567c004037a1bc037 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Sat, 21 Sep 2024 05:49:34 +0900 Subject: [PATCH] Fixes java-native-access/jna#1625 issue by caching the field list and validation state in addition to the existing layoutInfo and fieldOrder caches. --- src/com/sun/jna/Structure.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/com/sun/jna/Structure.java b/src/com/sun/jna/Structure.java index 2bf4c8c40..0365cda67 100644 --- a/src/com/sun/jna/Structure.java +++ b/src/com/sun/jna/Structure.java @@ -1018,10 +1018,10 @@ protected void sortFields(List fields, List names) { */ protected List getFieldList() { synchronized (fieldList) { - return fieldList.computeIfAbsent(getClass(), (c) -> { + return fieldList.computeIfAbsent(getClass(), (clazz) -> { List flist = new ArrayList<>(); List classFields = new ArrayList<>(); - for (Class cls = getClass(); + for (Class cls = clazz; !cls.equals(Structure.class); cls = cls.getSuperclass()) { for (Field field : cls.getDeclaredFields()) {