@@ -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,
348348 dict -> useFlagAliases = true;
349349 dict -> lenAffixData = info -> dict .lenAffixData ;
350350 dict -> nAffixData = info -> dict .nAffixData ;
351- dict -> AffixData = (char * * ) palloc0 (dict -> nAffixData * sizeof (char * ));
351+ dict -> AffixData = (const char * * ) palloc0 (dict -> nAffixData * sizeof (char * ));
352352
353353 for (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
360357 NISortDictionary (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{
716713 char * 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 */
825822 copy -> 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 );
827824 for (i = 0 ; i < copy -> dict .nAffixData ; i ++ )
828825 copy -> dict .AffixData [i ] = shstrcpy (dict -> AffixData [i ]);
829826
0 commit comments