summaryrefslogtreecommitdiffhomepage
path: root/examples/execute-string.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/execute-string.c')
-rw-r--r--examples/execute-string.c13
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) {