context->base.flags = jitFlags;
/* ensure cleanup */
- context->base.resowner = CurrentResourceOwner;
+ context->resowner = CurrentResourceOwner;
ResourceOwnerRememberJIT(CurrentResourceOwner, context);
llvm_jit_context_in_use_count++;
llvm_leave_fatal_on_oom();
- if (context->resowner)
- ResourceOwnerForgetJIT(context->resowner, llvm_jit_context);
+ if (llvm_jit_context->resowner)
+ ResourceOwnerForgetJIT(llvm_jit_context->resowner, llvm_jit_context);
}
/*
static void
ResOwnerReleaseJitContext(Datum res)
{
- JitContext *context = (JitContext *) DatumGetPointer(res);
+ LLVMJitContext *context = (LLVMJitContext *) DatumGetPointer(res);
context->resowner = NULL;
- jit_release_context(context);
+ jit_release_context(&context->base);
}
{
JitContext base;
+ /* used to ensure cleanup of context */
+ ResourceOwner resowner;
+
/* number of modules created */
size_t module_generation;