diff --git a/blockchain-sys/src/bindings.rs b/blockchain-sys/src/bindings.rs index 454d6b951203d3f3d17fd1040f44bb48cfc34ce0..b6a150d91ecdd5f78697e18a9c16af33cc76704f 100644 --- a/blockchain-sys/src/bindings.rs +++ b/blockchain-sys/src/bindings.rs @@ -55,3 +55,6 @@ extern "C" { extern "C" { pub fn libbc_blockchain_print(bc: *mut LibBcBlockchain); } +extern "C" { + pub fn libbc_delete_blockchain(bc: *mut LibBcBlockchain); +} diff --git a/libblockchain/src/lib.cpp b/libblockchain/src/lib.cpp index c1d2b5ddac8c4ad8395df6fdaa828401bd6c4e39..60b5937e238e9b00106f27a7d82ad2adbba7c1ee 100644 --- a/libblockchain/src/lib.cpp +++ b/libblockchain/src/lib.cpp @@ -38,4 +38,8 @@ void libbc_blockchain_add(LibBcBlockchain *bc, uint64_t id, struct LibBcPayload void libbc_blockchain_print(LibBcBlockchain *bc) { bc->print(); +} + +void libbc_delete_blockchain(LibBcBlockchain *bc) { + delete bc; } \ No newline at end of file diff --git a/libblockchain/src/lib.h b/libblockchain/src/lib.h index ff839d1e50a836110c8ce509c00382e1a044467b..35a2b9d944a721db0b4f269f74c0c867e4697d2c 100644 --- a/libblockchain/src/lib.h +++ b/libblockchain/src/lib.h @@ -33,6 +33,8 @@ extern "C" void libbc_blockchain_add(LibBcBlockchain *bc, uint64_t id, struct LibBcPayload payload); void libbc_blockchain_print(LibBcBlockchain *bc); + void libbc_delete_blockchain(LibBcBlockchain *bc); + #ifdef __cplusplus } #endif \ No newline at end of file diff --git a/program/src/main.rs b/program/src/main.rs index 313abb1271970fc79e131003b45ccd5f878582b6..d0f25a4298805637d375a05d4bc1c09ae13b7780 100644 --- a/program/src/main.rs +++ b/program/src/main.rs @@ -38,5 +38,6 @@ fn main() { unsafe { blockchain_sys::libbc_blockchain_print(blockchain.inner); + blockchain_sys::libbc_delete_blockchain(blockchain.inner); } }