EString _EString_add(EString _str0, const char* _str1, const char* _file_name, euint32 _file_line) { /** estring* estr = (estring*)((ref_ptr)_str0 - (ref_ptr)sizeof(estring)); euint32 length = strlen(_str1); estring* ret = _Malloc(sizeof(estring) + estr->length + length + 1, _file_name, _file_line); memcpy(&ret->str[0], &estr->str[0], estr->length); memcpy((vptr)((ref_ptr)&ret->str[0] + (ref_ptr)estr->length), _str1, length + 1); ret->length = estr->length + length; ret->hash = calc_hashnr(&ret->str[0], ret->length); return &ret->str[0]; **/ estring* estr = _get_estring(_str0); euint32 length = (euint32)strlen(_str1); estring* ret = (estring*)_Malloc(sizeof(estring) + estr->length + length + 1, _file_name, (euint32)_file_line); char* dest = &ret->str[0]; memcpy(dest, _str0, estr->length); dest += estr->length; memcpy(dest, _str1, length + 1); ret->length = estr->length + length; ret->hash = calc_hashnr(&ret->str[0], ret->length); return &ret->str[0]; }
EString _EString_add(EString _str0, const char* _str1, const char* _file_name, euint32 _file_line) { estring* estr = _get_estring(_str0); euint32 length = (euint32)strlen(_str1); estring* ret = (estring*)_Malloc(sizeof(estring) + estr->length + length + 1, _file_name, (euint32)_file_line); char* dest = &ret->str[0]; memcpy(dest, _str0, estr->length); dest += estr->length; memcpy(dest, _str1, length + 1); ret->length = estr->length + length; return &ret->str[0]; }
euint32 EString_size(EString _str) { estring* estr = _get_estring(_str); return estr->length; }
void _EString_delete(EString _str, const char* _file_name, euint32 _file_line) { estring* estr = _get_estring(_str); Mfree(estr); }
void _EString_delete(EString _str, const char* _file_name, euint32 _file_line) { ///estring* estr = (estring*)((ref_ptr)_str - (ref_ptr)sizeof(estring)); estring* estr = _get_estring(_str); Mfree(estr); }