From eb89f787b4702ded58f13641b16cebe01ed5a4d8 Mon Sep 17 00:00:00 2001 From: Peter Edberg Date: Fri, 12 Apr 2013 23:48:49 +0000 Subject: [PATCH] ICU-10070 Fix crash due to bug in uenum_next that only affects some compilers X-SVN-Rev: 33521 --- icu4c/source/test/cintltst/uregiontest.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/icu4c/source/test/cintltst/uregiontest.c b/icu4c/source/test/cintltst/uregiontest.c index 5dae47c3eca..1d5ef33d135 100644 --- a/icu4c/source/test/cintltst/uregiontest.c +++ b/icu4c/source/test/cintltst/uregiontest.c @@ -387,12 +387,13 @@ static void TestGetContainedRegions() { const URegion *r = uregion_getRegionFromCode(rd->code, &status); if ( U_SUCCESS(status) ) { UEnumeration *containedRegions; + int32_t resultLength = 0; /* bug in uenum_next if this is NULL, only affects some compilers */ const char *crID; if (uregion_getType(r) == URGN_GROUPING) { continue; } containedRegions = uregion_getContainedRegions(r, &status); - while ((crID = uenum_next(containedRegions, NULL, &status)) != NULL && U_SUCCESS(status) ) { + while ((crID = uenum_next(containedRegions, &resultLength, &status)) != NULL && U_SUCCESS(status) ) { const URegion *cr = uregion_getRegionFromCode(crID, &status); const URegion *containingRegion = (cr)? uregion_getContainingRegion(cr) : NULL; if ( !containingRegion || !uregion_isEqualTo(containingRegion, r) ) { @@ -414,12 +415,13 @@ static void TestGetContainedRegionsWithType() { const URegion *r = uregion_getRegionFromCode(rd->code, &status); if ( U_SUCCESS(status) ) { UEnumeration *containedRegions; + int32_t resultLength = 0; /* bug in uenum_next if this is NULL, only affects some compilers */ const char *crID; if (uregion_getType(r) != URGN_CONTINENT) { continue; } containedRegions = uregion_getContainedRegionsOfType(r, URGN_TERRITORY, &status); - while ((crID = uenum_next(containedRegions, NULL, &status)) != NULL && U_SUCCESS(status) ) { + while ((crID = uenum_next(containedRegions, &resultLength, &status)) != NULL && U_SUCCESS(status) ) { const URegion *cr = uregion_getRegionFromCode(crID, &status); const URegion *containingRegion = (cr)? uregion_getContainingRegionOfType(cr, URGN_CONTINENT) : NULL; if ( !containingRegion || !uregion_isEqualTo(containingRegion, r) ) {