Skip to content

Commit 5784a49

Browse files
committed
Move resowner from common JitContext to LLVM specific
Only the LLVM specific code uses it since resource owners were made extensible in commit b8bff07. This is new in v17, so backpatch there to keep the branches from diverging just yet. Author: Andreas Karlsson <andreas@proxel.se> Discussion: https://www.postgresql.org/message-id/fd3a2a00-6605-4e30-a118-48418b478e6e@proxel.se
1 parent 3a137ab commit 5784a49

File tree

3 files changed

+8
-7
lines changed

3 files changed

+8
-7
lines changed

src/backend/jit/llvm/llvmjit.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ llvm_create_context(int jitFlags)
249249
context->base.flags = jitFlags;
250250

251251
/* ensure cleanup */
252-
context->base.resowner = CurrentResourceOwner;
252+
context->resowner = CurrentResourceOwner;
253253
ResourceOwnerRememberJIT(CurrentResourceOwner, context);
254254

255255
llvm_jit_context_in_use_count++;
@@ -323,8 +323,8 @@ llvm_release_context(JitContext *context)
323323

324324
llvm_leave_fatal_on_oom();
325325

326-
if (context->resowner)
327-
ResourceOwnerForgetJIT(context->resowner, llvm_jit_context);
326+
if (llvm_jit_context->resowner)
327+
ResourceOwnerForgetJIT(llvm_jit_context->resowner, llvm_jit_context);
328328
}
329329

330330
/*
@@ -1377,8 +1377,8 @@ llvm_error_message(LLVMErrorRef error)
13771377
static void
13781378
ResOwnerReleaseJitContext(Datum res)
13791379
{
1380-
JitContext *context = (JitContext *) DatumGetPointer(res);
1380+
LLVMJitContext *context = (LLVMJitContext *) DatumGetPointer(res);
13811381

13821382
context->resowner = NULL;
1383-
jit_release_context(context);
1383+
jit_release_context(&context->base);
13841384
}

src/include/jit/jit.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,6 @@ typedef struct JitContext
5959
/* see PGJIT_* above */
6060
int flags;
6161

62-
ResourceOwner resowner;
63-
6462
JitInstrumentation instr;
6563
} JitContext;
6664

src/include/jit/llvmjit.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ typedef struct LLVMJitContext
3939
{
4040
JitContext base;
4141

42+
/* used to ensure cleanup of context */
43+
ResourceOwner resowner;
44+
4245
/* number of modules created */
4346
size_t module_generation;
4447

0 commit comments

Comments
 (0)