X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/73c04bcfe1096173b00431f0cdc742894b15eef0..ba6d6ed23dec08b1cd5700a128c0752491c10ac9:/icuSources/tools/gensprep/store.c diff --git a/icuSources/tools/gensprep/store.c b/icuSources/tools/gensprep/store.c index 58b88b3a..49ea02eb 100644 --- a/icuSources/tools/gensprep/store.c +++ b/icuSources/tools/gensprep/store.c @@ -1,7 +1,7 @@ /* ******************************************************************************* * -* Copyright (C) 1999-2006, International Business Machines +* Copyright (C) 1999-2012, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* @@ -22,6 +22,7 @@ #include "cstring.h" #include "filestrm.h" #include "unicode/udata.h" +#include "unicode/utf16.h" #include "utrie.h" #include "unewdata.h" #include "gensprep.h" @@ -196,8 +197,7 @@ static UNewTrie *sprepTrie; extern void init() { - sprepTrie = (UNewTrie *)uprv_malloc(sizeof(UNewTrie)); - uprv_memset(sprepTrie, 0, sizeof(UNewTrie)); + sprepTrie = (UNewTrie *)uprv_calloc(1, sizeof(UNewTrie)); /* initialize the two tries */ if(NULL==utrie_open(sprepTrie, NULL, MAX_DATA_LENGTH, 0, 0, FALSE)) { @@ -240,17 +240,20 @@ storeMappingData(){ const UHashElement* element = NULL; ValueStruct* value = NULL; int32_t codepoint = 0; - int32_t elementCount = uhash_count(hashTable); + int32_t elementCount = 0; int32_t writtenElementCount = 0; int32_t mappingLength = 1; /* minimum mapping length */ int32_t oldMappingLength = 0; uint16_t trieWord =0; int32_t limitIndex = 0; - /*initialize the mapping data */ - mappingData = (uint16_t*) uprv_malloc(U_SIZEOF_UCHAR * (mappingDataCapacity)); + if (hashTable == NULL) { + return; + } + elementCount = uhash_count(hashTable); - uprv_memset(mappingData,0,U_SIZEOF_UCHAR * mappingDataCapacity); + /*initialize the mapping data */ + mappingData = (uint16_t*) uprv_calloc(mappingDataCapacity, U_SIZEOF_UCHAR); while(writtenElementCount < elementCount){ @@ -453,17 +456,15 @@ storeMapping(uint32_t codepoint, uint32_t* mapping,int32_t length, */ } - map = (UChar*) uprv_malloc(U_SIZEOF_UCHAR * (adjustedLen+1)); - uprv_memset(map,0,U_SIZEOF_UCHAR * (adjustedLen+1)); - + map = (UChar*) uprv_calloc(adjustedLen + 1, U_SIZEOF_UCHAR); i=0; while(i