@ -791,12 +791,11 @@ getColorInfo(regex_t *regex, TrgmNFA *trgmNFA)
colorInfo - > expandable = true ;
colorInfo - > expandable = true ;
colorInfo - > containsNonWord = false ;
colorInfo - > containsNonWord = false ;
colorInfo - > wordChars = ( trgm_mb_char * )
colorInfo - > wordChars = palloc_array ( trgm_mb_char , charsCount ) ;
palloc ( sizeof ( trgm_mb_char ) * charsCount ) ;
colorInfo - > wordCharsCount = 0 ;
colorInfo - > wordCharsCount = 0 ;
/* Extract all the chars in this color */
/* Extract all the chars in this color */
chars = ( pg_wchar * ) palloc ( sizeof ( pg_wchar ) * charsCount ) ;
chars = palloc_array ( pg_wchar , charsCount ) ;
pg_reg_getcharacters ( regex , i , chars , charsCount ) ;
pg_reg_getcharacters ( regex , i , chars , charsCount ) ;
/*
/*
@ -1063,7 +1062,7 @@ addKey(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key)
* original NFA .
* original NFA .
*/
*/
arcsCount = pg_reg_getnumoutarcs ( trgmNFA - > regex , key - > nstate ) ;
arcsCount = pg_reg_getnumoutarcs ( trgmNFA - > regex , key - > nstate ) ;
arcs = ( regex_arc_t * ) palloc ( sizeof ( regex_arc_t ) * arcsCount ) ;
arcs = palloc_array ( regex_arc_t , arcsCount ) ;
pg_reg_getoutarcs ( trgmNFA - > regex , key - > nstate , arcs , arcsCount ) ;
pg_reg_getoutarcs ( trgmNFA - > regex , key - > nstate , arcs , arcsCount ) ;
for ( i = 0 ; i < arcsCount ; i + + )
for ( i = 0 ; i < arcsCount ; i + + )
@ -1177,7 +1176,7 @@ addKey(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key)
static void
static void
addKeyToQueue ( TrgmNFA * trgmNFA , TrgmStateKey * key )
addKeyToQueue ( TrgmNFA * trgmNFA , TrgmStateKey * key )
{
{
TrgmStateKey * keyCopy = ( TrgmStateKey * ) palloc ( sizeof ( TrgmStateKey ) ) ;
TrgmStateKey * keyCopy = palloc_object ( TrgmStateKey ) ;
memcpy ( keyCopy , key , sizeof ( TrgmStateKey ) ) ;
memcpy ( keyCopy , key , sizeof ( TrgmStateKey ) ) ;
trgmNFA - > keysQueue = lappend ( trgmNFA - > keysQueue , keyCopy ) ;
trgmNFA - > keysQueue = lappend ( trgmNFA - > keysQueue , keyCopy ) ;
@ -1215,7 +1214,7 @@ addArcs(TrgmNFA *trgmNFA, TrgmState *state)
TrgmStateKey * key = ( TrgmStateKey * ) lfirst ( cell ) ;
TrgmStateKey * key = ( TrgmStateKey * ) lfirst ( cell ) ;
arcsCount = pg_reg_getnumoutarcs ( trgmNFA - > regex , key - > nstate ) ;
arcsCount = pg_reg_getnumoutarcs ( trgmNFA - > regex , key - > nstate ) ;
arcs = ( regex_arc_t * ) palloc ( sizeof ( regex_arc_t ) * arcsCount ) ;
arcs = palloc_array ( regex_arc_t , arcsCount ) ;
pg_reg_getoutarcs ( trgmNFA - > regex , key - > nstate , arcs , arcsCount ) ;
pg_reg_getoutarcs ( trgmNFA - > regex , key - > nstate , arcs , arcsCount ) ;
for ( i = 0 ; i < arcsCount ; i + + )
for ( i = 0 ; i < arcsCount ; i + + )
@ -1311,7 +1310,7 @@ addArc(TrgmNFA *trgmNFA, TrgmState *state, TrgmStateKey *key,
}
}
/* Checks were successful, add new arc */
/* Checks were successful, add new arc */
arc = ( TrgmArc * ) palloc ( sizeof ( TrgmArc ) ) ;
arc = palloc_object ( TrgmArc ) ;
arc - > target = getState ( trgmNFA , destKey ) ;
arc - > target = getState ( trgmNFA , destKey ) ;
arc - > ctrgm . colors [ 0 ] = key - > prefix . colors [ 0 ] ;
arc - > ctrgm . colors [ 0 ] = key - > prefix . colors [ 0 ] ;
arc - > ctrgm . colors [ 1 ] = key - > prefix . colors [ 1 ] ;
arc - > ctrgm . colors [ 1 ] = key - > prefix . colors [ 1 ] ;
@ -1467,7 +1466,7 @@ selectColorTrigrams(TrgmNFA *trgmNFA)
int cnumber ;
int cnumber ;
/* Collect color trigrams from all arcs */
/* Collect color trigrams from all arcs */
colorTrgms = ( ColorTrgmInfo * ) palloc0 ( sizeof ( ColorTrgmInfo ) * arcsCount ) ;
colorTrgms = palloc0_array ( ColorTrgmInfo , arcsCount ) ;
trgmNFA - > colorTrgms = colorTrgms ;
trgmNFA - > colorTrgms = colorTrgms ;
i = 0 ;
i = 0 ;
@ -1479,7 +1478,7 @@ selectColorTrigrams(TrgmNFA *trgmNFA)
foreach ( cell , state - > arcs )
foreach ( cell , state - > arcs )
{
{
TrgmArc * arc = ( TrgmArc * ) lfirst ( cell ) ;
TrgmArc * arc = ( TrgmArc * ) lfirst ( cell ) ;
TrgmArcInfo * arcInfo = ( TrgmArcInfo * ) palloc ( sizeof ( TrgmArcInfo ) ) ;
TrgmArcInfo * arcInfo = palloc_object ( TrgmArcInfo ) ;
ColorTrgmInfo * trgmInfo = & colorTrgms [ i ] ;
ColorTrgmInfo * trgmInfo = & colorTrgms [ i ] ;
arcInfo - > source = state ;
arcInfo - > source = state ;
@ -1964,8 +1963,7 @@ packGraph(TrgmNFA *trgmNFA, MemoryContext rcontext)
}
}
/* Collect array of all arcs */
/* Collect array of all arcs */
arcs = ( TrgmPackArcInfo * )
arcs = palloc_array ( TrgmPackArcInfo , trgmNFA - > arcsCount ) ;
palloc ( sizeof ( TrgmPackArcInfo ) * trgmNFA - > arcsCount ) ;
arcIndex = 0 ;
arcIndex = 0 ;
hash_seq_init ( & scan_status , trgmNFA - > states ) ;
hash_seq_init ( & scan_status , trgmNFA - > states ) ;
while ( ( state = ( TrgmState * ) hash_seq_search ( & scan_status ) ) ! = NULL )
while ( ( state = ( TrgmState * ) hash_seq_search ( & scan_status ) ) ! = NULL )
@ -2147,7 +2145,7 @@ printSourceNFA(regex_t *regex, TrgmColorInfo *colors, int ncolors)
appendStringInfoString ( & buf , " ; \n " ) ;
appendStringInfoString ( & buf , " ; \n " ) ;
arcsCount = pg_reg_getnumoutarcs ( regex , state ) ;
arcsCount = pg_reg_getnumoutarcs ( regex , state ) ;
arcs = ( regex_arc_t * ) palloc ( sizeof ( regex_arc_t ) * arcsCount ) ;
arcs = palloc_array ( regex_arc_t , arcsCount ) ;
pg_reg_getoutarcs ( regex , state , arcs , arcsCount ) ;
pg_reg_getoutarcs ( regex , state , arcs , arcsCount ) ;
for ( i = 0 ; i < arcsCount ; i + + )
for ( i = 0 ; i < arcsCount ; i + + )