@@ -80,7 +80,7 @@ static SegmentInfo *segment_info = NULL;
8080static void ispell_shmem_startup (void );
8181
8282static char * shalloc (int bytes );
83- static char * shstrcpy (char * str );
83+ static char * shstrcpy (const char * str );
8484
8585static SharedIspellDict * copyIspellDict (IspellDict * dict , char * dictFile , char * affixFile , int bytes , int words );
8686static SharedStopList * copyStopList (StopList * list , char * stopFile , int bytes );
@@ -346,13 +346,10 @@ init_shared_dict(DictInfo *info, MemoryContext infoCntx,
346346 dict -> useFlagAliases = true;
347347 dict -> lenAffixData = info -> dict .lenAffixData ;
348348 dict -> nAffixData = info -> dict .nAffixData ;
349- dict -> AffixData = (char * * ) palloc0 (dict -> nAffixData * sizeof (char * ));
349+ dict -> AffixData = (const char * * ) palloc0 (dict -> nAffixData * sizeof (char * ));
350350
351351 for (i = 0 ; i < dict -> nAffixData ; i ++ )
352- {
353- dict -> AffixData [i ] = palloc0 (strlen (info -> dict .AffixData [i ]) + 1 );
354- strcpy (dict -> AffixData [i ], info -> dict .AffixData [i ]);
355- }
352+ dict -> AffixData [i ] = pstrdup (info -> dict .AffixData [i ]);
356353 }
357354
358355 NISortDictionary (dict );
@@ -709,7 +706,7 @@ shalloc(int bytes)
709706 * by the code that reads and parses the dictionary / affixes).
710707 */
711708static char *
712- shstrcpy (char * str )
709+ shstrcpy (const char * str )
713710{
714711 char * tmp = shalloc (strlen (str ) + 1 );
715712
@@ -821,7 +818,7 @@ copyIspellDict(IspellDict *dict, char *dictFile, char *affixFile, int size, int
821818
822819 /* copy affix data */
823820 copy -> dict .nAffixData = dict -> nAffixData ;
824- copy -> dict .AffixData = (char * * ) shalloc (sizeof (char * ) * dict -> nAffixData );
821+ copy -> dict .AffixData = (const char * * ) shalloc (sizeof (char * ) * dict -> nAffixData );
825822 for (i = 0 ; i < copy -> dict .nAffixData ; i ++ )
826823 copy -> dict .AffixData [i ] = shstrcpy (dict -> AffixData [i ]);
827824
0 commit comments