diff --git a/c_bindings/pocketpy_c.cpp b/c_bindings/pocketpy_c.cpp index c766ad65..07cc89cb 100644 --- a/c_bindings/pocketpy_c.cpp +++ b/c_bindings/pocketpy_c.cpp @@ -418,7 +418,7 @@ bool pkpy_to_string(pkpy_vm* vm_handle, int index, char** ret) { ERRHANDLER_CLOSE } -bool pkpy_to_stringn(pkpy_vm* vm_handle, int index, const char** ret, int* size) { +bool pkpy_to_stringn(pkpy_vm* vm_handle, int index, char** ret, int* size) { CVM* vm = (CVM*) vm_handle; ERRHANDLER_OPEN index = lua_to_cstack_index(index, vm->c_data->size()); diff --git a/docs/C-API/vm.md b/docs/C-API/vm.md index cccd1a98..e38e3a0b 100644 --- a/docs/C-API/vm.md +++ b/docs/C-API/vm.md @@ -32,7 +32,7 @@ Delete a virtual machine. Delete a REPL. -#### `void pkpy_vm_compile(VM* vm, const char* source, const char* filename, int mode, bool* ok, char* res)` +#### `void pkpy_vm_compile(VM* vm, const char* source, const char* filename, int mode, bool* ok, char** res)` Compile a source into bytecode and serialize it into a string. diff --git a/src/pocketpy.h b/src/pocketpy.h index b3093c91..e5670159 100644 --- a/src/pocketpy.h +++ b/src/pocketpy.h @@ -1463,17 +1463,17 @@ extern "C" { } PK_LEGACY_EXPORT - void pkpy_vm_compile(pkpy::VM* vm, const char* source, const char* filename, int mode, bool* ok, char* res){ + void pkpy_vm_compile(pkpy::VM* vm, const char* source, const char* filename, int mode, bool* ok, char** res){ try{ pkpy::CodeObject_ code = vm->compile(source, filename, (pkpy::CompileMode)mode); - res = code->serialize(vm).c_str_dup(); + *res = code->serialize(vm).c_str_dup(); *ok = true; }catch(pkpy::Exception& e){ *ok = false; - res = e.summary().c_str_dup(); + *res = e.summary().c_str_dup(); }catch(...){ *ok = false; - res = strdup("unknown error"); + *res = strdup("unknown error"); } }