aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/jit/llvm/llvmjit.c10
-rw-r--r--src/include/jit/jit.h2
-rw-r--r--src/include/jit/llvmjit.h3
3 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c
index 1d439f24554..abfe444c7ed 100644
--- a/src/backend/jit/llvm/llvmjit.c
+++ b/src/backend/jit/llvm/llvmjit.c
@@ -249,7 +249,7 @@ llvm_create_context(int jitFlags)
context->base.flags = jitFlags;
/* ensure cleanup */
- context->base.resowner = CurrentResourceOwner;
+ context->resowner = CurrentResourceOwner;
ResourceOwnerRememberJIT(CurrentResourceOwner, context);
llvm_jit_context_in_use_count++;
@@ -323,8 +323,8 @@ llvm_release_context(JitContext *context)
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);
}
/*
@@ -1372,8 +1372,8 @@ llvm_error_message(LLVMErrorRef error)
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);
}
diff --git a/src/include/jit/jit.h b/src/include/jit/jit.h
index b7a1eed2810..d9a080ce98f 100644
--- a/src/include/jit/jit.h
+++ b/src/include/jit/jit.h
@@ -59,8 +59,6 @@ typedef struct JitContext
/* see PGJIT_* above */
int flags;
- ResourceOwner resowner;
-
JitInstrumentation instr;
} JitContext;
diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h
index 9d9db806625..420775b1899 100644
--- a/src/include/jit/llvmjit.h
+++ b/src/include/jit/llvmjit.h
@@ -39,6 +39,9 @@ typedef struct LLVMJitContext
{
JitContext base;
+ /* used to ensure cleanup of context */
+ ResourceOwner resowner;
+
/* number of modules created */
size_t module_generation;