Spaces:
Paused
Paused
| from llvmlite.binding import ffi | |
| # FIXME: Remove me once typed pointers are no longer supported. | |
| from llvmlite import opaque_pointers_enabled | |
| from ctypes import c_bool | |
| def create_context(): | |
| return ContextRef( | |
| ffi.lib.LLVMPY_ContextCreate(opaque_pointers_enabled)) | |
| def get_global_context(): | |
| return GlobalContextRef( | |
| ffi.lib.LLVMPY_GetGlobalContext(opaque_pointers_enabled)) | |
| class ContextRef(ffi.ObjectRef): | |
| def __init__(self, context_ptr): | |
| super(ContextRef, self).__init__(context_ptr) | |
| def _dispose(self): | |
| ffi.lib.LLVMPY_ContextDispose(self) | |
| class GlobalContextRef(ContextRef): | |
| def _dispose(self): | |
| pass | |
| # FIXME: Remove argtypes once typed pointers are no longer supported. | |
| ffi.lib.LLVMPY_GetGlobalContext.argtypes = [c_bool] | |
| ffi.lib.LLVMPY_GetGlobalContext.restype = ffi.LLVMContextRef | |
| # FIXME: Remove argtypes once typed pointers are no longer supported. | |
| ffi.lib.LLVMPY_ContextCreate.argtypes = [c_bool] | |
| ffi.lib.LLVMPY_ContextCreate.restype = ffi.LLVMContextRef | |
| ffi.lib.LLVMPY_ContextDispose.argtypes = [ffi.LLVMContextRef] | |