Loading .gitignore +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ snippets/ make_output.txt tests/population/scaling/scaling_plots/* tests/population/scaling/scaling_results/* tests/json* docs/build/* Loading include/binary_c_python.h +7 −4 Original line number Diff line number Diff line Loading @@ -42,16 +42,19 @@ int return_version_info(char ** const outstring, char ** const errorstring, size_t * const nbytes); /* =================================================================== */ /* Functions to call other functionality */ /* =================================================================== */ long int return_store_memaddr(char * argstring, // TODO can we do this without argstring? char ** const buffer, long int return_store_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes); long int return_persistent_data_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes); long int return_persistent_data_memaddr(char * argstring, // TODO can we do this without argstring? int free_persistent_data_memaddr_and_return_json_output(long int persistent_data_memaddr, char ** const buffer, char ** const error_buffer, size_t * const nbytes); Loading src/binary_c_python.c +44 −54 Original line number Diff line number Diff line Loading @@ -61,6 +61,11 @@ static char return_store_memaddr_docstring[] = static char return_persistent_data_memaddr_docstring[] = "Return the store memory adress that will be passed to run_population"; static char free_persistent_data_memaddr_and_return_json_output_docstring[] = "Frees the persistent_data memory and returns the json output"; static struct libbinary_c_store_t *store = NULL; /* Initialize pyobjects */ Loading @@ -84,7 +89,8 @@ static PyObject* binary_c_return_version_info(PyObject *self, PyObject *args); static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args); static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObject *args); // Free functions static PyObject* binary_c_free_persistent_data_memaddr_and_return_json_output(PyObject *self, PyObject *args); /* Set the module functions */ static PyMethodDef module_methods[] = { Loading @@ -107,7 +113,8 @@ static PyMethodDef module_methods[] = { {"return_version_info", binary_c_return_version_info, METH_VARARGS, return_version_info_docstring}, {"return_store_memaddr", binary_c_return_store_memaddr, METH_VARARGS, return_store_memaddr_docstring}, {"return_persistent_data_memaddr", binary_c_return_persistent_data_memaddr, METH_VARARGS, return_persistent_data_memaddr_docstring}, {"return_persistent_data_memaddr", binary_c_return_persistent_data_memaddr, METH_NOARGS, return_persistent_data_memaddr_docstring}, {"free_persistent_data_memaddr_and_return_json_output", binary_c_free_persistent_data_memaddr_and_return_json_output, METH_VARARGS, free_persistent_data_memaddr_and_return_json_output_docstring}, {NULL, NULL, 0, NULL} }; Loading Loading @@ -238,7 +245,7 @@ static PyObject* binary_c_run_system(PyObject *self, PyObject *args, PyObject *k return NULL; } printf("Input persistent_Data_memaddr: %lu\n", persistent_data_memaddr); // printf("Input persistent_Data_memaddr: %lu\n", persistent_data_memaddr); /* Call c-function */ char * buffer; Loading Loading @@ -398,19 +405,10 @@ static PyObject* binary_c_return_version_info(PyObject *self, PyObject *args) static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args) { /* Parse the input tuple */ char *argstring; if(!PyArg_ParseTuple(args, "s", &argstring)) { return NULL; } char * buffer; char * error_buffer; size_t nbytes; long int out MAYBE_UNUSED = return_store_memaddr(argstring, &buffer, long int out MAYBE_UNUSED = return_store_memaddr(&buffer, &error_buffer, &nbytes); Loading @@ -437,20 +435,10 @@ static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args) static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObject *args) { /* Python binding that wraps the c function which calls the binary_c api endpoint. */ /* Parse the input tuple */ char *argstring; if(!PyArg_ParseTuple(args, "s", &argstring)) { return NULL; } char * buffer; char * error_buffer; size_t nbytes; long int out MAYBE_UNUSED = return_persistent_data_memaddr(argstring, &buffer, long int out MAYBE_UNUSED = return_persistent_data_memaddr(&buffer, &error_buffer, &nbytes); Loading Loading @@ -513,40 +501,42 @@ static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObjec // return 0; // } // static PyObject* binary_c_free_persistent_data_memaddr(PyObject *self, PyObject *args) // { // /* Python binding that calls the c function that free's the store memory */ // /* Parse the input tuple */ // char *persistent_data_memaddr; // if(!PyArg_ParseTuple(args, "l", &persistent_data_memaddr)) // { // return NULL; // } static PyObject* binary_c_free_persistent_data_memaddr_and_return_json_output(PyObject *self, PyObject *args) { /* Python binding that calls the c function that free's the store memory */ // char * buffer; // char * error_buffer; // size_t nbytes; /* Parse the input tuple */ long int persistent_data_memaddr = -1; // long int out MAYBE_UNUSED = free_persistent_data_memaddr(persistent_data_memaddr, // &buffer, // &error_buffer, // &nbytes); if(!PyArg_ParseTuple(args, "l", &persistent_data_memaddr)) { return NULL; } // /* copy the buffer to a python string */ // PyObject * return_string MAYBE_UNUSED = Py_BuildValue("s", buffer); // PyObject * return_error_string MAYBE_UNUSED = Py_BuildValue("s", error_buffer); char * buffer; char * error_buffer; size_t nbytes; // if(error_buffer != NULL && strlen(error_buffer)>0) // { // fprintf(stderr, // "Error in binary_c run : %s\n", // error_buffer); // } long int out MAYBE_UNUSED = free_persistent_data_memaddr_and_return_json_output(persistent_data_memaddr, &buffer, &error_buffer, &nbytes); // Safe_free(buffer); // Safe_free(error_buffer); /* copy the buffer to a python string */ PyObject * return_string MAYBE_UNUSED = Py_BuildValue("s", buffer); PyObject * return_error_string MAYBE_UNUSED = Py_BuildValue("s", error_buffer); // return 0; // } if(error_buffer != NULL && strlen(error_buffer)>0) { fprintf(stderr, "Error in binary_c run : %s\n", error_buffer); } Safe_free(buffer); Safe_free(error_buffer); return return_string; } src/binary_c_python_api.c +95 −65 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ int run_system(char * argstring, size_t * const nbytes) { /* memory for system */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; // Store: /* Check the value of the store_memaddr */ Loading @@ -79,14 +79,15 @@ int run_system(char * argstring, { // load the persistent data from the long int that has been passed persistent_data = (void*)persistent_data_memaddr; printf("Took long int memaddr %ld and loaded it to %p\n", persistent_data_memaddr, (void*)&persistent_data); } else { printf("persistent_data memory adress was -1, now setting it to NULL\n"); persistent_data = NULL; } /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -141,6 +142,7 @@ int run_system(char * argstring, Boolean free_persistent_data = FALSE; if (persistent_data_memaddr == -1) { printf("Decided to free the persistent_data memaddr\n"); Boolean free_persistent_data = TRUE; } Loading @@ -150,7 +152,7 @@ int run_system(char * argstring, TRUE, // free_stardata free_store, // free_store FALSE, // free_raw_buffer free_persistent_data // free_persistent TODO: check if this is correct here free_persistent_data // free_persistent ); return 0; Loading @@ -165,12 +167,11 @@ int return_arglines(char ** const buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; char *empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading @@ -180,7 +181,6 @@ int return_arglines(char ** const buffer, -1 // argc ); /* disable logging */ snprintf(stardata->preferences->log_filename, STRING_LENGTH-1, Loading Loading @@ -210,7 +210,7 @@ int return_arglines(char ** const buffer, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -222,12 +222,10 @@ int return_help_info(char * argstring, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -256,7 +254,7 @@ int return_help_info(char * argstring, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -267,13 +265,11 @@ int return_help_all_info(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; char * empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -302,7 +298,7 @@ int return_help_all_info(char ** const buffer, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -313,13 +309,11 @@ int return_version_info(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t * store = NULL; /* make new stardata */ stardata = NULL; char * empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -358,27 +352,24 @@ int return_version_info(char ** const buffer, /* Functions to call other functionality */ /* =================================================================== */ long int return_store_memaddr(char * argstring, char ** const buffer, long int return_store_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t * stardata = NULL; struct libbinary_c_store_t * store = NULL; char * empty_str = ""; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store NULL, // persistent_data &argstring, // argv &empty_str, // argv -1 // argc ); /* output to strings */ // stardata->preferences->internal_buffering = INTERNAL_BUFFERING_STORE; // stardata->preferences->batchmode = BATCHMODE_LIBRARY; Loading @@ -394,7 +385,7 @@ long int return_store_memaddr(char * argstring, TRUE, // free_preferences TRUE, // free_stardata FALSE, // free_store FALSE, // free_raw_buffer: TODO: possibly we have to do this yes FALSE, // free_raw_buffer TRUE // free_persistent ); Loading @@ -408,25 +399,23 @@ long int return_store_memaddr(char * argstring, } long int return_persistent_data_memaddr(char * argstring, char ** const buffer, long int return_persistent_data_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* Function to allocate the persistent_data_memaddr */ struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t * store = NULL; struct libbinary_c_persistent_data_t * persistent_data = NULL; char * empty_str = ""; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store &persistent_data, // persistent_data &argstring, // argv &empty_str, // argv -1 // argc ); Loading @@ -438,15 +427,14 @@ long int return_persistent_data_memaddr(char * argstring, /* convert the pointer */ uintptr_t persistent_data_memaddr_int = (uintptr_t)stardata->persistent_data; // C Version converting ptr to int // printf("persistent_data is at address: %p\n", (void*)stardata->persistent_data); // printf("persistent_data_memaddr_int: %lu\n", persistent_data_memaddr_int); printf("persistent_data is at address: %p persistent_data_memaddr_int: %ld\n", (void*)&stardata->persistent_data, persistent_data_memaddr_int); /* free stardata (except the buffer) */ binary_c_free_memory(&stardata, // Stardata TRUE, // free_preferences TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer: TODO: possibly we have to do this yes FALSE, // free_raw_buffer FALSE // free_persistent ); Loading @@ -454,19 +442,61 @@ long int return_persistent_data_memaddr(char * argstring, return persistent_data_memaddr_int; } // /* Memory freeing functions */ // int free_store_memaddr(long int * store_memaddr, // char ** const buffer, // char ** const error_buffer, // size_t * const nbytes) // { int free_persistent_data_memaddr_and_return_json_output(long int persistent_data_memaddr, char ** const buffer, char ** const error_buffer, size_t * const nbytes) { struct libbinary_c_store_t *store = NULL; struct libbinary_c_stardata_t *stardata = NULL; char * empty_str = ""; // persistent_data: struct libbinary_c_persistent_data_t *persistent_data; if(persistent_data_memaddr != -1) { // load the persistent data from the long int that has been passed persistent_data = (void*)persistent_data_memaddr; printf("Took long int memaddr %ld and loaded it to %p\n", persistent_data_memaddr, (void*)&persistent_data); } else { printf("ERROR: this function needs a valid persistent_data_memaddr value. not -1\n"); // persistent_data = NULL; // TODO: put break in the function here. } /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store &persistent_data, // persistent_data &empty_str, // argv -1 // argc ); /* output to strings */ stardata->preferences->internal_buffering = INTERNAL_BUFFERING_STORE; stardata->preferences->batchmode = BATCHMODE_LIBRARY; /* get output and free memory */ binary_c_output_to_json(stardata); /* get buffer pointer */ binary_c_buffer_info(stardata, buffer, nbytes); // return 0; // } /* get error buffer pointer */ binary_c_error_buffer(stardata, error_buffer); // int free_persistent_data_memaddr // { /* free the reststardata (except the buffer) */ binary_c_free_memory(&stardata, // Stardata TRUE, // free_preferences TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer FALSE // free_persistent ); // } return 0; } tests/test_return_persistent_data_memaddr.py +216 −34 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
.gitignore +1 −1 Original line number Diff line number Diff line Loading @@ -3,7 +3,7 @@ snippets/ make_output.txt tests/population/scaling/scaling_plots/* tests/population/scaling/scaling_results/* tests/json* docs/build/* Loading
include/binary_c_python.h +7 −4 Original line number Diff line number Diff line Loading @@ -42,16 +42,19 @@ int return_version_info(char ** const outstring, char ** const errorstring, size_t * const nbytes); /* =================================================================== */ /* Functions to call other functionality */ /* =================================================================== */ long int return_store_memaddr(char * argstring, // TODO can we do this without argstring? char ** const buffer, long int return_store_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes); long int return_persistent_data_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes); long int return_persistent_data_memaddr(char * argstring, // TODO can we do this without argstring? int free_persistent_data_memaddr_and_return_json_output(long int persistent_data_memaddr, char ** const buffer, char ** const error_buffer, size_t * const nbytes); Loading
src/binary_c_python.c +44 −54 Original line number Diff line number Diff line Loading @@ -61,6 +61,11 @@ static char return_store_memaddr_docstring[] = static char return_persistent_data_memaddr_docstring[] = "Return the store memory adress that will be passed to run_population"; static char free_persistent_data_memaddr_and_return_json_output_docstring[] = "Frees the persistent_data memory and returns the json output"; static struct libbinary_c_store_t *store = NULL; /* Initialize pyobjects */ Loading @@ -84,7 +89,8 @@ static PyObject* binary_c_return_version_info(PyObject *self, PyObject *args); static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args); static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObject *args); // Free functions static PyObject* binary_c_free_persistent_data_memaddr_and_return_json_output(PyObject *self, PyObject *args); /* Set the module functions */ static PyMethodDef module_methods[] = { Loading @@ -107,7 +113,8 @@ static PyMethodDef module_methods[] = { {"return_version_info", binary_c_return_version_info, METH_VARARGS, return_version_info_docstring}, {"return_store_memaddr", binary_c_return_store_memaddr, METH_VARARGS, return_store_memaddr_docstring}, {"return_persistent_data_memaddr", binary_c_return_persistent_data_memaddr, METH_VARARGS, return_persistent_data_memaddr_docstring}, {"return_persistent_data_memaddr", binary_c_return_persistent_data_memaddr, METH_NOARGS, return_persistent_data_memaddr_docstring}, {"free_persistent_data_memaddr_and_return_json_output", binary_c_free_persistent_data_memaddr_and_return_json_output, METH_VARARGS, free_persistent_data_memaddr_and_return_json_output_docstring}, {NULL, NULL, 0, NULL} }; Loading Loading @@ -238,7 +245,7 @@ static PyObject* binary_c_run_system(PyObject *self, PyObject *args, PyObject *k return NULL; } printf("Input persistent_Data_memaddr: %lu\n", persistent_data_memaddr); // printf("Input persistent_Data_memaddr: %lu\n", persistent_data_memaddr); /* Call c-function */ char * buffer; Loading Loading @@ -398,19 +405,10 @@ static PyObject* binary_c_return_version_info(PyObject *self, PyObject *args) static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args) { /* Parse the input tuple */ char *argstring; if(!PyArg_ParseTuple(args, "s", &argstring)) { return NULL; } char * buffer; char * error_buffer; size_t nbytes; long int out MAYBE_UNUSED = return_store_memaddr(argstring, &buffer, long int out MAYBE_UNUSED = return_store_memaddr(&buffer, &error_buffer, &nbytes); Loading @@ -437,20 +435,10 @@ static PyObject* binary_c_return_store_memaddr(PyObject *self, PyObject *args) static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObject *args) { /* Python binding that wraps the c function which calls the binary_c api endpoint. */ /* Parse the input tuple */ char *argstring; if(!PyArg_ParseTuple(args, "s", &argstring)) { return NULL; } char * buffer; char * error_buffer; size_t nbytes; long int out MAYBE_UNUSED = return_persistent_data_memaddr(argstring, &buffer, long int out MAYBE_UNUSED = return_persistent_data_memaddr(&buffer, &error_buffer, &nbytes); Loading Loading @@ -513,40 +501,42 @@ static PyObject* binary_c_return_persistent_data_memaddr(PyObject *self, PyObjec // return 0; // } // static PyObject* binary_c_free_persistent_data_memaddr(PyObject *self, PyObject *args) // { // /* Python binding that calls the c function that free's the store memory */ // /* Parse the input tuple */ // char *persistent_data_memaddr; // if(!PyArg_ParseTuple(args, "l", &persistent_data_memaddr)) // { // return NULL; // } static PyObject* binary_c_free_persistent_data_memaddr_and_return_json_output(PyObject *self, PyObject *args) { /* Python binding that calls the c function that free's the store memory */ // char * buffer; // char * error_buffer; // size_t nbytes; /* Parse the input tuple */ long int persistent_data_memaddr = -1; // long int out MAYBE_UNUSED = free_persistent_data_memaddr(persistent_data_memaddr, // &buffer, // &error_buffer, // &nbytes); if(!PyArg_ParseTuple(args, "l", &persistent_data_memaddr)) { return NULL; } // /* copy the buffer to a python string */ // PyObject * return_string MAYBE_UNUSED = Py_BuildValue("s", buffer); // PyObject * return_error_string MAYBE_UNUSED = Py_BuildValue("s", error_buffer); char * buffer; char * error_buffer; size_t nbytes; // if(error_buffer != NULL && strlen(error_buffer)>0) // { // fprintf(stderr, // "Error in binary_c run : %s\n", // error_buffer); // } long int out MAYBE_UNUSED = free_persistent_data_memaddr_and_return_json_output(persistent_data_memaddr, &buffer, &error_buffer, &nbytes); // Safe_free(buffer); // Safe_free(error_buffer); /* copy the buffer to a python string */ PyObject * return_string MAYBE_UNUSED = Py_BuildValue("s", buffer); PyObject * return_error_string MAYBE_UNUSED = Py_BuildValue("s", error_buffer); // return 0; // } if(error_buffer != NULL && strlen(error_buffer)>0) { fprintf(stderr, "Error in binary_c run : %s\n", error_buffer); } Safe_free(buffer); Safe_free(error_buffer); return return_string; }
src/binary_c_python_api.c +95 −65 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ int run_system(char * argstring, size_t * const nbytes) { /* memory for system */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; // Store: /* Check the value of the store_memaddr */ Loading @@ -79,14 +79,15 @@ int run_system(char * argstring, { // load the persistent data from the long int that has been passed persistent_data = (void*)persistent_data_memaddr; printf("Took long int memaddr %ld and loaded it to %p\n", persistent_data_memaddr, (void*)&persistent_data); } else { printf("persistent_data memory adress was -1, now setting it to NULL\n"); persistent_data = NULL; } /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -141,6 +142,7 @@ int run_system(char * argstring, Boolean free_persistent_data = FALSE; if (persistent_data_memaddr == -1) { printf("Decided to free the persistent_data memaddr\n"); Boolean free_persistent_data = TRUE; } Loading @@ -150,7 +152,7 @@ int run_system(char * argstring, TRUE, // free_stardata free_store, // free_store FALSE, // free_raw_buffer free_persistent_data // free_persistent TODO: check if this is correct here free_persistent_data // free_persistent ); return 0; Loading @@ -165,12 +167,11 @@ int return_arglines(char ** const buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; char *empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading @@ -180,7 +181,6 @@ int return_arglines(char ** const buffer, -1 // argc ); /* disable logging */ snprintf(stardata->preferences->log_filename, STRING_LENGTH-1, Loading Loading @@ -210,7 +210,7 @@ int return_arglines(char ** const buffer, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -222,12 +222,10 @@ int return_help_info(char * argstring, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -256,7 +254,7 @@ int return_help_info(char * argstring, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -267,13 +265,11 @@ int return_help_all_info(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t *store = NULL; /* make new stardata */ stardata = NULL; char * empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -302,7 +298,7 @@ int return_help_all_info(char ** const buffer, TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer TRUE // free_persistent TODO: check if this is correct here TRUE // free_persistent ); return 0; Loading @@ -313,13 +309,11 @@ int return_version_info(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t * store = NULL; /* make new stardata */ stardata = NULL; char * empty_str = ""; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences Loading Loading @@ -358,27 +352,24 @@ int return_version_info(char ** const buffer, /* Functions to call other functionality */ /* =================================================================== */ long int return_store_memaddr(char * argstring, char ** const buffer, long int return_store_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* memory for N binary systems */ struct libbinary_c_stardata_t *stardata; struct libbinary_c_stardata_t * stardata = NULL; struct libbinary_c_store_t * store = NULL; char * empty_str = ""; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store NULL, // persistent_data &argstring, // argv &empty_str, // argv -1 // argc ); /* output to strings */ // stardata->preferences->internal_buffering = INTERNAL_BUFFERING_STORE; // stardata->preferences->batchmode = BATCHMODE_LIBRARY; Loading @@ -394,7 +385,7 @@ long int return_store_memaddr(char * argstring, TRUE, // free_preferences TRUE, // free_stardata FALSE, // free_store FALSE, // free_raw_buffer: TODO: possibly we have to do this yes FALSE, // free_raw_buffer TRUE // free_persistent ); Loading @@ -408,25 +399,23 @@ long int return_store_memaddr(char * argstring, } long int return_persistent_data_memaddr(char * argstring, char ** const buffer, long int return_persistent_data_memaddr(char ** const buffer, char ** const error_buffer, size_t * const nbytes) { /* Function to allocate the persistent_data_memaddr */ struct libbinary_c_stardata_t *stardata = NULL; struct libbinary_c_store_t * store = NULL; struct libbinary_c_persistent_data_t * persistent_data = NULL; char * empty_str = ""; /* make new stardata */ stardata = NULL; /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store &persistent_data, // persistent_data &argstring, // argv &empty_str, // argv -1 // argc ); Loading @@ -438,15 +427,14 @@ long int return_persistent_data_memaddr(char * argstring, /* convert the pointer */ uintptr_t persistent_data_memaddr_int = (uintptr_t)stardata->persistent_data; // C Version converting ptr to int // printf("persistent_data is at address: %p\n", (void*)stardata->persistent_data); // printf("persistent_data_memaddr_int: %lu\n", persistent_data_memaddr_int); printf("persistent_data is at address: %p persistent_data_memaddr_int: %ld\n", (void*)&stardata->persistent_data, persistent_data_memaddr_int); /* free stardata (except the buffer) */ binary_c_free_memory(&stardata, // Stardata TRUE, // free_preferences TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer: TODO: possibly we have to do this yes FALSE, // free_raw_buffer FALSE // free_persistent ); Loading @@ -454,19 +442,61 @@ long int return_persistent_data_memaddr(char * argstring, return persistent_data_memaddr_int; } // /* Memory freeing functions */ // int free_store_memaddr(long int * store_memaddr, // char ** const buffer, // char ** const error_buffer, // size_t * const nbytes) // { int free_persistent_data_memaddr_and_return_json_output(long int persistent_data_memaddr, char ** const buffer, char ** const error_buffer, size_t * const nbytes) { struct libbinary_c_store_t *store = NULL; struct libbinary_c_stardata_t *stardata = NULL; char * empty_str = ""; // persistent_data: struct libbinary_c_persistent_data_t *persistent_data; if(persistent_data_memaddr != -1) { // load the persistent data from the long int that has been passed persistent_data = (void*)persistent_data_memaddr; printf("Took long int memaddr %ld and loaded it to %p\n", persistent_data_memaddr, (void*)&persistent_data); } else { printf("ERROR: this function needs a valid persistent_data_memaddr value. not -1\n"); // persistent_data = NULL; // TODO: put break in the function here. } /* Set up new system */ binary_c_new_system(&stardata, // stardata NULL, // previous_stardatas NULL, // preferences &store, // store &persistent_data, // persistent_data &empty_str, // argv -1 // argc ); /* output to strings */ stardata->preferences->internal_buffering = INTERNAL_BUFFERING_STORE; stardata->preferences->batchmode = BATCHMODE_LIBRARY; /* get output and free memory */ binary_c_output_to_json(stardata); /* get buffer pointer */ binary_c_buffer_info(stardata, buffer, nbytes); // return 0; // } /* get error buffer pointer */ binary_c_error_buffer(stardata, error_buffer); // int free_persistent_data_memaddr // { /* free the reststardata (except the buffer) */ binary_c_free_memory(&stardata, // Stardata TRUE, // free_preferences TRUE, // free_stardata TRUE, // free_store FALSE, // free_raw_buffer FALSE // free_persistent ); // } return 0; }
tests/test_return_persistent_data_memaddr.py +216 −34 File changed.Preview size limit exceeded, changes collapsed. Show changes