@@ -82,7 +82,7 @@ static SegmentInfo *segment_info = NULL;
8282static void ispell_shmem_startup (void );
8383
8484static char * shalloc (int bytes );
85- static char * shstrcpy (char * str );
85+ static char * shstrcpy (const char * str );
8686
8787static SharedIspellDict * copyIspellDict (IspellDict * dict ,char * dictFile ,char * affixFile ,int bytes ,int words );
8888static SharedStopList * copyStopList (StopList * list ,char * stopFile ,int bytes );
@@ -348,13 +348,10 @@ init_shared_dict(DictInfo *info, MemoryContext infoCntx,
348348dict -> useFlagAliases = true;
349349dict -> lenAffixData = info -> dict .lenAffixData ;
350350dict -> nAffixData = info -> dict .nAffixData ;
351- dict -> AffixData = (char * * )palloc0 (dict -> nAffixData * sizeof (char * ));
351+ dict -> AffixData = (const char * * )palloc0 (dict -> nAffixData * sizeof (char * ));
352352
353353for (i = 0 ;i < dict -> nAffixData ;i ++ )
354- {
355- dict -> AffixData [i ]= palloc0 (strlen (info -> dict .AffixData [i ])+ 1 );
356- strcpy (dict -> AffixData [i ],info -> dict .AffixData [i ]);
357- }
354+ dict -> AffixData [i ]= pstrdup (info -> dict .AffixData [i ]);
358355}
359356
360357NISortDictionary (dict );
@@ -711,7 +708,7 @@ shalloc(int bytes)
711708 * by the code that reads and parses the dictionary / affixes).
712709 */
713710static char *
714- shstrcpy (char * str )
711+ shstrcpy (const char * str )
715712{
716713char * tmp = shalloc (strlen (str )+ 1 );
717714
@@ -823,7 +820,7 @@ copyIspellDict(IspellDict *dict, char *dictFile, char *affixFile, int size, int
823820
824821/* copy affix data */
825822copy -> dict .nAffixData = dict -> nAffixData ;
826- copy -> dict .AffixData = (char * * )shalloc (sizeof (char * )* dict -> nAffixData );
823+ copy -> dict .AffixData = (const char * * )shalloc (sizeof (char * )* dict -> nAffixData );
827824for (i = 0 ;i < copy -> dict .nAffixData ;i ++ )
828825copy -> dict .AffixData [i ]= shstrcpy (dict -> AffixData [i ]);
829826