Skip to content

Commit 249c211

Browse files
committed
Fix: guard AllocNode.nativeAccess is not idempotent
1 parent e40173b commit 249c211

File tree

1 file changed

+7
-3
lines changed
  • graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs

1 file changed

+7
-3
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext/structs/CStructAccess.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,9 @@
7171
import com.oracle.truffle.api.dsl.Cached;
7272
import com.oracle.truffle.api.dsl.Cached.Shared;
7373
import com.oracle.truffle.api.dsl.GenerateUncached;
74-
import com.oracle.truffle.api.dsl.Idempotent;
7574
import com.oracle.truffle.api.dsl.ImportStatic;
7675
import com.oracle.truffle.api.dsl.NeverDefault;
76+
import com.oracle.truffle.api.dsl.NonIdempotent;
7777
import com.oracle.truffle.api.dsl.Specialization;
7878
import com.oracle.truffle.api.interop.InteropLibrary;
7979
import com.oracle.truffle.api.interop.UnsupportedMessageException;
@@ -121,8 +121,12 @@ public Object alloc(int size, boolean allocatePyMem) {
121121
return execute(1, size, allocatePyMem);
122122
}
123123

124-
@Idempotent
125-
protected boolean nativeAccess() {
124+
/*
125+
* This guard is nonIdempotent because 'isNativeAccessAllowed' may be different for each
126+
* context.
127+
*/
128+
@NonIdempotent
129+
final boolean nativeAccess() {
126130
return PythonContext.get(this).isNativeAccessAllowed();
127131
}
128132

0 commit comments

Comments
 (0)