diff options
Diffstat (limited to 'examples/execute-string.c')
-rw-r--r-- | examples/execute-string.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/examples/execute-string.c b/examples/execute-string.c index 1fcc966..fe5e8e9 100644 --- a/examples/execute-string.c +++ b/examples/execute-string.c @@ -28,7 +28,7 @@ #define MULTILINE_STRING(...) #__VA_ARGS__ -static const char *program = MULTILINE_STRING( +static const char *program_code = MULTILINE_STRING( {% function add(a, b) { c = a + b; @@ -55,17 +55,17 @@ int main(int argc, char **argv) int exit_code = 0; /* create a source buffer containing the program code */ - uc_source_t *src = uc_source_new_buffer("my program", strdup(program), strlen(program)); + uc_source_t *src = uc_source_new_buffer("my program", strdup(program_code), strlen(program_code)); /* compile source buffer into function */ char *syntax_error = NULL; - uc_function_t *progfunc = uc_compile(&config, src, &syntax_error); + uc_program_t *program = uc_compile(&config, src, &syntax_error); /* release source buffer */ uc_source_put(src); /* check if compilation failed */ - if (!progfunc) { + if (!program) { fprintf(stderr, "Failed to compile program: %s\n", syntax_error); return 1; @@ -84,7 +84,10 @@ int main(int argc, char **argv) /* execute compiled program function */ uc_value_t *last_expression_result = NULL; - int return_code = uc_vm_execute(&vm, progfunc, &last_expression_result); + int return_code = uc_vm_execute(&vm, program, &last_expression_result); + + /* release program */ + uc_program_put(program); /* handle return status */ switch (return_code) { |