From b50119031f1b1b4935a20837ae931f0cc0f1167e Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sun, 4 Oct 2026 19:48:30 +1300 Subject: Match the proper string format for compiler (IT WORKS YEAHHHHHHHHHHHH) --- src/String.m | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/String.m') diff --git a/src/String.m b/src/String.m index 7d5d4d8..cc91745 100644 --- a/src/String.m +++ b/src/String.m @@ -25,15 +25,24 @@ if (cstring == NULL) cstring = ""; - _length = strlen(cstring); - _bytes = malloc(_length + 1); - memcpy(_bytes, cstring, _length + 1); + size_t length = strlen(cstring); + + flags = 0; // ASCII + flags |= PXStringFlagOwned; // OUR string (not compiler's) + len = (uint32_t)length; + size = (uint32_t)length; + hash = 0; // implement hashes later + + _bytes = malloc(length + 1); + memcpy((char *)_bytes, cstring, length + 1); } return self; } - (void)dealloc { - free(_bytes); + if (flags & PXStringFlagOwned) + free((void *)_bytes); + [super dealloc]; } @@ -42,18 +51,18 @@ return _bytes; } -- (size_t)length { - return _length; +- (uint32_t)length { + return len; } - (BOOL)isEqual:(PXString *)string { if (self == string) return YES; - if (string == nil || _length != string->_length) + if (string == nil || len != string->len) return NO; - return (memcmp(_bytes, string->_bytes, _length) == 0); + return (memcmp(_bytes, string->_bytes, size) == 0); } @end -- cgit v1.2.3