@@ -142,38 +142,31 @@ ZVecString *zvec_string_create(const char *str) {
142142 __FUNCTION__);
143143 return nullptr ;
144144 }
145-
146145 ZVecString *zstr = nullptr ;
147146 char *data_buffer = nullptr ;
148-
149147 try {
150148 size_t len = strlen (str);
151149 zstr = new ZVecString ();
152- data_buffer = new char [len + 1 ];
153- strcpy (const_cast <char *>(data_buffer), str);
154-
150+ data_buffer = static_cast <char *>(malloc (len + 1 ));
151+ strcpy (data_buffer, str);
155152 zstr->data = data_buffer;
156153 zstr->length = len;
157154 zstr->capacity = len + 1 ;
158-
159155 return zstr;
160-
161156 } catch (const std::exception &e) {
162157 if (data_buffer) {
163- delete[] data_buffer;
158+ free ( data_buffer) ;
164159 }
165160 if (zstr) {
166161 delete zstr;
167162 }
168-
169163 set_last_error_details (ZVEC_ERROR_INTERNAL_ERROR,
170164 std::string (" String creation failed: " ) + e.what (),
171165 __FILE__, __LINE__, __FUNCTION__);
172166 return nullptr ;
173167 }
174168}
175169
176-
177170ZVecString *zvec_string_create_from_view (const ZVecStringView *view) {
178171 if (!view || !view->data ) {
179172 set_last_error_details (ZVEC_ERROR_INVALID_ARGUMENT,
@@ -651,8 +644,7 @@ static ZVecErrorCode handle_expected_result(
651644// Helper function: copy strings
652645static char *copy_string (const std::string &str) {
653646 if (str.empty ()) return nullptr ;
654-
655- char *copy = new char [str.length () + 1 ];
647+ char *copy = static_cast <char *>(malloc (str.length () + 1 ));
656648 strcpy (copy, str.c_str ());
657649 return copy;
658650}
@@ -2903,7 +2895,7 @@ const char *zvec_doc_get_pk_copy(const ZVecDoc *doc) {
29032895 const std::string &pk = (*doc_ptr)->pk_ref ();
29042896 if (pk.empty ()) return nullptr ;
29052897
2906- char *result = new char [ pk.length () + 1 ] ;
2898+ char *result = static_cast < char *>( malloc ( pk.length () + 1 )) ;
29072899 strcpy (result, pk.c_str ());
29082900 return result;
29092901}
0 commit comments