Skip to content

Commit 46fe9dc

Browse files
committed
FFM : add CriticalAll annotation
1 parent 113d783 commit 46fe9dc

2 files changed

Lines changed: 28 additions & 2 deletions

File tree

src/javaforce/ffm/CriticalAll.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package javaforce.ffm;
2+
3+
/** JNI2FFM annotation.
4+
*
5+
* Indicates all native function in class are critical.
6+
*
7+
* See Linker.Option.critical()
8+
*
9+
* @author pquiring
10+
*/
11+
12+
import java.lang.annotation.ElementType;
13+
import java.lang.annotation.Retention;
14+
import java.lang.annotation.RetentionPolicy;
15+
import java.lang.annotation.Target;
16+
17+
@Retention(RetentionPolicy.SOURCE)
18+
@Target(ElementType.TYPE)
19+
public @interface CriticalAll {}

src/javaforce/ffm/JNI2FFM.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,11 @@ public static void main(String[] args) {
5959
return;
6060
}
6161

62+
boolean flag_critical_all = false;
63+
6264
boolean flag_nofreestring = false;
6365
boolean flag_nocopyback = false;
64-
boolean flag_critical = false;
66+
boolean flag_critical = flag_critical_all;
6567

6668
try {
6769

@@ -122,6 +124,11 @@ public static void main(String[] args) {
122124
flag_critical = true;
123125
continue;
124126
}
127+
if (ln.equals("@CriticalAll")) {
128+
flag_critical = true;
129+
flag_critical_all = true;
130+
continue;
131+
}
125132
if (!ln.startsWith("public native")) continue;
126133
//public native void glActiveTexture(int i1);
127134
ln = ln.substring(14, ln.length() - 1);
@@ -311,7 +318,7 @@ public static void main(String[] args) {
311318
}
312319
flag_nofreestring = false;
313320
flag_nocopyback = false;
314-
flag_critical = false;
321+
flag_critical = flag_critical_all;
315322
}
316323
ctor.append(" return true;\n");
317324
ctor.append(" }\n");

0 commit comments

Comments
 (0)