File tree Expand file tree Collapse file tree 1 file changed +2
-7
lines changed Expand file tree Collapse file tree 1 file changed +2
-7
lines changed Original file line number Diff line number Diff line change @@ -359,22 +359,17 @@ static void set_sqlite3_func_result(sqlite3_context * ctx, VALUE result)
359359static void rb_sqlite3_func (sqlite3_context * ctx , int argc , sqlite3_value * * argv )
360360{
361361 VALUE callable = (VALUE )sqlite3_user_data (ctx );
362- VALUE * params = NULL ;
362+ VALUE params [ argc ]; /* RB_GC_GUARD unreliable -- keep values safely on the stack */
363363 VALUE result ;
364364 int i ;
365365
366366 if (argc > 0 ) {
367- params = xcalloc ((size_t )argc , sizeof (VALUE * ));
368-
369367 for (i = 0 ; i < argc ; i ++ ) {
370- VALUE param = sqlite3val2rb (argv [i ]);
371- RB_GC_GUARD (param );
372- params [i ] = param ;
368+ params [i ] = sqlite3val2rb (argv [i ]);
373369 }
374370 }
375371
376372 result = rb_funcall2 (callable , rb_intern ("call" ), argc , params );
377- xfree (params );
378373
379374 set_sqlite3_func_result (ctx , result );
380375}
You can’t perform that action at this time.
0 commit comments