View | Details | Raw Unified | Return to bug 249416
Collapse All | Expand All

(-)b/lib/libc/locale/xlocale.c (+4 lines)
Lines 251-256 static int dupcomponent(int type, locale_t base, locale_t new) Link Here
251
251
252
locale_t newlocale(int mask, const char *locale, locale_t base)
252
locale_t newlocale(int mask, const char *locale, locale_t base)
253
{
253
{
254
	locale_t _base;
254
	int type;
255
	int type;
255
	const char *realLocale = locale;
256
	const char *realLocale = locale;
256
	int useenv = 0;
257
	int useenv = 0;
Lines 263-268 locale_t newlocale(int mask, const char *locale, locale_t base) Link Here
263
		return (NULL);
264
		return (NULL);
264
	}
265
	}
265
266
267
	_base = base;
266
	FIX_LOCALE(base);
268
	FIX_LOCALE(base);
267
	copyflags(new, base);
269
	copyflags(new, base);
268
270
Lines 297-302 locale_t newlocale(int mask, const char *locale, locale_t base) Link Here
297
	if (0 == success) {
299
	if (0 == success) {
298
		xlocale_release(new);
300
		xlocale_release(new);
299
		new = NULL;
301
		new = NULL;
302
	} else if (base == _base) {
303
		xlocale_release(base);
300
	}
304
	}
301
305
302
	return (new);
306
	return (new);

Return to bug 249416