Merge branch 'amiranda/47-the-c-api-should-not-rely-on-unique_ptr' into 'main'
Resolve "The C++ API should not rely on `unique_ptr`" This MR removes the need to pass a `std::unique_ptr<admire::storage>` argument to `register_adhoc_storage` in the C++ API. Tests are also updated to reflect this change and to remove dependencies with `ADM_storage_create()`, which in the future will become an internal function. Finally, we fix some use-after-free memory management errors due to shortcomings in `managed_ctype`s and the creation function of C API types themselves. The errors are "fixed" by not deleting the data, which means that we are now effectively leaking. So that tests pass, we set `detect_leaks=0` in `ASAN_OPTIONS`. Closes #47 See merge request !42
No related branches found
No related tags found
Showing
- examples/c/ADM_set_transfer_priority.c 16 additions, 5 deletionsexamples/c/ADM_set_transfer_priority.c
- examples/c/ADM_transfer_datasets.c 16 additions, 5 deletionsexamples/c/ADM_transfer_datasets.c
- examples/c/ADM_update_adhoc_storage.c 0 additions, 7 deletionsexamples/c/ADM_update_adhoc_storage.c
- examples/c/ADM_update_job.c 17 additions, 6 deletionsexamples/c/ADM_update_job.c
- examples/c/ADM_update_pfs_storage.c 0 additions, 3 deletionsexamples/c/ADM_update_pfs_storage.c
- examples/cxx/ADM_register_adhoc_storage.cpp 0 additions, 11 deletionsexamples/cxx/ADM_register_adhoc_storage.cpp
- examples/cxx/ADM_register_job.cpp 9 additions, 5 deletionsexamples/cxx/ADM_register_job.cpp
- examples/cxx/ADM_transfer_datasets.cpp 8 additions, 5 deletionsexamples/cxx/ADM_transfer_datasets.cpp
- examples/cxx/ADM_update_job.cpp 8 additions, 12 deletionsexamples/cxx/ADM_update_job.cpp
- src/common/api/admire_types.hpp 19 additions, 5 deletionssrc/common/api/admire_types.hpp
- src/common/api/convert.cpp 15 additions, 2 deletionssrc/common/api/convert.cpp
- src/common/api/convert.hpp 11 additions, 0 deletionssrc/common/api/convert.hpp
- src/common/api/types.cpp 22 additions, 31 deletionssrc/common/api/types.cpp
- src/common/net/proto/rpc_types.c 16 additions, 2 deletionssrc/common/net/proto/rpc_types.c
- src/common/net/proto/rpc_types.h 1 addition, 1 deletionsrc/common/net/proto/rpc_types.h
Loading
Please register or sign in to comment