107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
{
@synchronized (self) {
struct of_string_utf8_ivars *ivars;
if ([self isMemberOfClass: [OFConstantUTF8String class]])
return;
ivars = of_alloc_zeroed(1, sizeof(*ivars));
ivars->cString = _cString;
ivars->cStringLength = _cStringLength;
switch (of_string_utf8_check(ivars->cString,
ivars->cStringLength, &ivars->length)) {
case 1:
ivars->isUTF8 = true;
break;
case -1:
free(ivars);
@throw [OFInvalidEncodingException exception];
}
_cString = (char *)ivars;
object_setClass(self, [OFConstantUTF8String class]);
}
}
|
|
|
|
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
{
@synchronized (self) {
struct of_string_utf8_ivars *ivars;
if ([self isMemberOfClass: [OFConstantUTF8String class]])
return;
ivars = OFAllocZeroedMemory(1, sizeof(*ivars));
ivars->cString = _cString;
ivars->cStringLength = _cStringLength;
switch (of_string_utf8_check(ivars->cString,
ivars->cStringLength, &ivars->length)) {
case 1:
ivars->isUTF8 = true;
break;
case -1:
OFFreeMemory(ivars);
@throw [OFInvalidEncodingException exception];
}
_cString = (char *)ivars;
object_setClass(self, [OFConstantUTF8String class]);
}
}
|