@@ -88,6 +88,8 @@ POLYGLOT_DECLARE_TYPE(PyCapsule);
88
88
POLYGLOT_DECLARE_TYPE (PyMemoryViewObject );
89
89
POLYGLOT_DECLARE_TYPE (PySetObject );
90
90
POLYGLOT_DECLARE_TYPE (PyBufferDecorator );
91
+ POLYGLOT_DECLARE_TYPE (PyFloatObject );
92
+
91
93
92
94
PyObject * handle_exception_and_cast (void * val );
93
95
void * handle_exception (void * val );
@@ -96,13 +98,15 @@ void* handle_exception(void* val);
96
98
#define PY_TRUFFLE_LANDING ((PyObject*(*)(void *rcv, void* name, ...))polyglot_get_member(PY_TRUFFLE_CEXT, polyglot_from_string("PyTruffle_Upcall", SRC_CS)))
97
99
#define PY_TRUFFLE_CEXT_LANDING ((PyObject*(*)(void* name, ...))polyglot_get_member(PY_TRUFFLE_CEXT, polyglot_from_string("PyTruffle_Cext_Upcall", SRC_CS)))
98
100
#define PY_TRUFFLE_CEXT_LANDING_L ((uint64_t (*)(void* name, ...))polyglot_get_member(PY_TRUFFLE_CEXT, polyglot_from_string("PyTruffle_Cext_Upcall_l", SRC_CS)))
101
+ #define PY_TRUFFLE_CEXT_LANDING_D ((double (*)(void* name, ...))polyglot_get_member(PY_TRUFFLE_CEXT, polyglot_from_string("PyTruffle_Cext_Upcall_l", SRC_CS)))
99
102
#define UPCALL_O (__recv__ , __name__ , ...) handle_exception_and_cast(PY_TRUFFLE_LANDING((__recv__), polyglot_from_string((__name__), SRC_CS), __VA_ARGS__))
100
103
#define UPCALL_CEXT_O (__name__ , ...) handle_exception_and_cast(PY_TRUFFLE_CEXT_LANDING(polyglot_from_string((__name__), SRC_CS), ##__VA_ARGS__))
101
104
#define UPCALL_CEXT_VOID (__name__ , ...) (PY_TRUFFLE_CEXT_LANDING(polyglot_from_string((__name__), SRC_CS), ##__VA_ARGS__))
102
105
#define UPCALL_CEXT_PTR (__name__ , ...) handle_exception(PY_TRUFFLE_CEXT_LANDING(polyglot_from_string((__name__), SRC_CS), ##__VA_ARGS__))
103
106
#define UPCALL_CEXT_P (__name__ , ...) (PY_TRUFFLE_CEXT_LANDING_L(polyglot_from_string((__name__), SRC_CS), ##__VA_ARGS__))
104
107
#define UPCALL_CEXT_I (__name__ , ...) UPCALL_CEXT_P(__name__, ##__VA_ARGS__)
105
108
#define UPCALL_CEXT_L (__name__ , ...) UPCALL_CEXT_P(__name__, ##__VA_ARGS__)
109
+ #define UPCALL_CEXT_D (__name__ , ...) (PY_TRUFFLE_CEXT_LANDING_D(polyglot_from_string((__name__), SRC_CS), ##__VA_ARGS__))
106
110
107
111
void * native_to_java (PyObject * obj );
108
112
extern void * to_java (PyObject * obj );
0 commit comments