Skip to content

Commit 3531190

Browse files
committed
we know about MD_DEF, specialize for it
1 parent cc1cbd1 commit 3531190

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,6 +361,13 @@ Object doMdDict(PythonObject object, @SuppressWarnings("unused") String key,
361361
return getToSulongNode().execute(getDictNode.execute(object, SpecialAttributeNames.__DICT__));
362362
}
363363

364+
@Specialization(guards = "eq(MD_DEF, key)")
365+
Object doMdDef(PythonObject object, @SuppressWarnings("unused") String key) {
366+
PythonObjectNativeWrapper nativeWrapper = ((PythonAbstractObject) object).getNativeWrapper();
367+
assert nativeWrapper != null;
368+
return getGetItemNode().execute(nativeWrapper.getNativeMemberStore(), NativeMemberNames.MD_DEF);
369+
}
370+
364371
@Specialization(guards = "eq(BUF_DELEGATE, key)")
365372
Object doObSval(PBuffer object, @SuppressWarnings("unused") String key) {
366373
return new PySequenceArrayWrapper(object.getDelegate());
@@ -512,6 +519,14 @@ Object doTpSubclasses(PythonClass object, @SuppressWarnings("unused") String key
512519
return value;
513520
}
514521

522+
@Specialization(guards = "eq(MD_DEF, key)")
523+
Object doMdDef(PythonObject object, @SuppressWarnings("unused") String key, Object value) {
524+
PythonObjectNativeWrapper nativeWrapper = ((PythonAbstractObject) object).getNativeWrapper();
525+
assert nativeWrapper != null;
526+
getSetItemNode().execute(null, nativeWrapper.createNativeMemberStore(), NativeMemberNames.MD_DEF, value);
527+
return value;
528+
}
529+
515530
@Fallback
516531
Object doGeneric(Object object, String key, Object value) {
517532
// This is the preliminary generic case: There are native members we know that they

0 commit comments

Comments
 (0)