@@ -592,7 +592,7 @@ plpython_inline_handler(PG_FUNCTION_ARGS)
592
592
FunctionCallInfoData fake_fcinfo ;
593
593
FmgrInfo flinfo ;
594
594
PLyProcedure * save_curr_proc ;
595
- PLyProcedure * volatile proc = NULL ;
595
+ PLyProcedure proc ;
596
596
ErrorContextCallback plerrcontext ;
597
597
598
598
if (SPI_connect () != SPI_OK_CONNECT )
@@ -613,26 +613,26 @@ plpython_inline_handler(PG_FUNCTION_ARGS)
613
613
flinfo .fn_oid = InvalidOid ;
614
614
flinfo .fn_mcxt = CurrentMemoryContext ;
615
615
616
- proc = PLy_malloc0 ( sizeof (PLyProcedure ));
617
- proc -> pyname = PLy_strdup ("__plpython_inline_block" );
618
- proc -> result .out .d .typoid = VOIDOID ;
616
+ MemSet ( & proc , 0 , sizeof (PLyProcedure ));
617
+ proc . pyname = PLy_strdup ("__plpython_inline_block" );
618
+ proc . result .out .d .typoid = VOIDOID ;
619
619
620
620
PG_TRY ();
621
621
{
622
- PLy_procedure_compile (proc , codeblock -> source_text );
623
- PLy_curr_procedure = proc ;
624
- PLy_function_handler (& fake_fcinfo , proc );
622
+ PLy_procedure_compile (& proc , codeblock -> source_text );
623
+ PLy_curr_procedure = & proc ;
624
+ PLy_function_handler (& fake_fcinfo , & proc );
625
625
}
626
626
PG_CATCH ();
627
627
{
628
- PLy_procedure_delete (proc );
628
+ PLy_procedure_delete (& proc );
629
629
PLy_curr_procedure = save_curr_proc ;
630
630
PyErr_Clear ();
631
631
PG_RE_THROW ();
632
632
}
633
633
PG_END_TRY ();
634
634
635
- PLy_procedure_delete (proc );
635
+ PLy_procedure_delete (& proc );
636
636
637
637
/* Pop the error context stack */
638
638
error_context_stack = plerrcontext .previous ;
0 commit comments