ObjFW  Diff

Differences From Artifact [cffef7d468]:

To Artifact [441ab9ee19]:


56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
				[super free];
				return nil;
			}

			string = [self getMemForNItems: length + 1
						ofSize: sizeof(wchar_t)];

			if (mbstowcs(string, str, length) != length) {
				[super free];
				return nil;
			}
		}
	}

	return self;







|







56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
				[super free];
				return nil;
			}

			string = [self getMemForNItems: length + 1
						ofSize: sizeof(wchar_t)];

			if (mbstowcs(string, str, length + 1) != length) {
				[super free];
				return nil;
			}
		}
	}

	return self;
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
	size_t len;

	if ((len = wcstombs(NULL, string, 0)) == (size_t)-1) {
		/* FIXME: Throw exception */
		return NULL;
	}

	str = [self getMemWithSize: len];

	if (wcstombs(str, string, len) != len) {
		/* FIXME: Throw exception */
		[self freeMem: str];
		return NULL;
	}

	return str;
}







|

|







93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
	size_t len;

	if ((len = wcstombs(NULL, string, 0)) == (size_t)-1) {
		/* FIXME: Throw exception */
		return NULL;
	}

	str = [self getMemWithSize: len + 1];

	if (wcstombs(str, string, len + 1) != len) {
		/* FIXME: Throw exception */
		[self freeMem: str];
		return NULL;
	}

	return str;
}