diff --git a/src/psql_utils/include/psql_utils/to_bytea.hpp b/src/psql_utils/include/psql_utils/to_bytea.hpp index 652801be8ee8d9c7299a6a56e5fe1049fc3373f1..d4d01ef44e4d041dd98532f91da028fdb1ac24aa 100644 --- a/src/psql_utils/include/psql_utils/to_bytea.hpp +++ b/src/psql_utils/include/psql_utils/to_bytea.hpp @@ -5,10 +5,12 @@ #include <memory> namespace PsqlTools::PsqlUtils { + using bytea_ptr = std::unique_ptr< bytea, decltype(&std::free) >; template< typename _Data > - std::unique_ptr< bytea > toBytea( _Data* _data ) { - std::unique_ptr< bytea > result( ( bytea* )new uint8_t[ sizeof( _Data ) + VARHDRSZ ] ); + bytea_ptr toBytea( _Data* _data ) { + + bytea_ptr result( static_cast<bytea*>( std::malloc(sizeof(_Data) + VARHDRSZ) ), &std::free ); SET_VARSIZE( result.get(), sizeof( _Data ) ); std::memcpy( VARDATA_ANY( result.get() ), _data, sizeof( _Data ) );