@@ -592,7 +592,7 @@ plpython_inline_handler(PG_FUNCTION_ARGS)
592592FunctionCallInfoData fake_fcinfo ;
593593FmgrInfo flinfo ;
594594PLyProcedure * save_curr_proc ;
595- PLyProcedure * volatile proc = NULL ;
595+ PLyProcedure proc ;
596596ErrorContextCallback plerrcontext ;
597597
598598if (SPI_connect ()!= SPI_OK_CONNECT )
@@ -613,26 +613,26 @@ plpython_inline_handler(PG_FUNCTION_ARGS)
613613flinfo .fn_oid = InvalidOid ;
614614flinfo .fn_mcxt = CurrentMemoryContext ;
615615
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 ;
619619
620620PG_TRY ();
621621{
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 );
625625}
626626PG_CATCH ();
627627{
628- PLy_procedure_delete (proc );
628+ PLy_procedure_delete (& proc );
629629PLy_curr_procedure = save_curr_proc ;
630630PyErr_Clear ();
631631PG_RE_THROW ();
632632}
633633PG_END_TRY ();
634634
635- PLy_procedure_delete (proc );
635+ PLy_procedure_delete (& proc );
636636
637637/* Pop the error context stack */
638638error_context_stack = plerrcontext .previous ;