diff options
Diffstat (limited to 'src/misc/vec')
-rw-r--r-- | src/misc/vec/vecInt.h | 23 | ||||
-rw-r--r-- | src/misc/vec/vecPtr.h | 46 | ||||
-rw-r--r-- | src/misc/vec/vecStr.h | 24 |
3 files changed, 90 insertions, 3 deletions
diff --git a/src/misc/vec/vecInt.h b/src/misc/vec/vecInt.h index 975b61cf..76fce02e 100644 --- a/src/misc/vec/vecInt.h +++ b/src/misc/vec/vecInt.h @@ -430,6 +430,29 @@ static inline int Vec_IntPop( Vec_Int_t * p ) /**Function************************************************************* + Synopsis [] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline void Vec_IntRemove( Vec_Int_t * p, int Entry ) +{ + int i; + for ( i = 0; i < p->nSize; i++ ) + if ( p->pArray[i] == Entry ) + break; + assert( i < p->nSize ); + for ( i++; i < p->nSize; i++ ) + p->pArray[i-1] = p->pArray[i]; + p->nSize--; +} + +/**Function************************************************************* + Synopsis [Comparison procedure for two integers.] Description [] diff --git a/src/misc/vec/vecPtr.h b/src/misc/vec/vecPtr.h index eb551d1c..3914cf99 100644 --- a/src/misc/vec/vecPtr.h +++ b/src/misc/vec/vecPtr.h @@ -51,6 +51,10 @@ struct Vec_Ptr_t_ #define Vec_PtrForEachEntry( vVec, pEntry, i ) \ for ( i = 0; (i < Vec_PtrSize(vVec)) && (((pEntry) = Vec_PtrEntry(vVec, i)), 1); i++ ) +#define Vec_PtrForEachEntryByLevel( vVec, pEntry, i, k ) \ + for ( i = 0; i < Vec_PtrSize(vVec); i++ ) \ + Vec_PtrForEachEntry( ((Vec_Ptr_t *)Vec_PtrEntry(vVec, i)), pEntry, k ) + //////////////////////////////////////////////////////////////////////// /// FUNCTION DEFITIONS /// //////////////////////////////////////////////////////////////////////// @@ -169,7 +173,7 @@ static inline Vec_Ptr_t * Vec_PtrDupArray( Vec_Ptr_t * pVec ) /**Function************************************************************* - Synopsis [] + Synopsis [Frees the vector.] Description [] @@ -463,6 +467,46 @@ static inline void Vec_PtrReorder( Vec_Ptr_t * p, int nItems ) /**Function************************************************************* + Synopsis [Frees the vector of vectors.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline void Vec_PtrFreeFree( Vec_Ptr_t * p ) +{ + Vec_Ptr_t * vVec; + int i; + Vec_PtrForEachEntry( p, vVec, i ) + Vec_PtrFree( vVec ); + Vec_PtrFree( p ); +} + +/**Function************************************************************* + + Synopsis [Frees the vector of vectors.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline int Vec_PtrSizeSize( Vec_Ptr_t * p ) +{ + Vec_Ptr_t * vVec; + int i, Counter = 0; + Vec_PtrForEachEntry( p, vVec, i ) + Counter += vVec->nSize; + return Counter; +} + +/**Function************************************************************* + Synopsis [Sorting the entries by their integer value.] Description [] diff --git a/src/misc/vec/vecStr.h b/src/misc/vec/vecStr.h index 33be5f1d..2a9dc7a0 100644 --- a/src/misc/vec/vecStr.h +++ b/src/misc/vec/vecStr.h @@ -301,8 +301,8 @@ static inline void Vec_StrGrow( Vec_Str_t * p, int nCapMin ) { if ( p->nCap >= nCapMin ) return; - p->pArray = REALLOC( char, p->pArray, nCapMin ); - p->nCap = nCapMin; + p->pArray = REALLOC( char, p->pArray, 2 * nCapMin ); + p->nCap = 2 * nCapMin; } /**Function************************************************************* @@ -383,6 +383,26 @@ static inline void Vec_StrPush( Vec_Str_t * p, char Entry ) /**Function************************************************************* + Synopsis [Appends the string to the char vector.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +static inline void Vec_StrAppend( Vec_Str_t * p, char * pString ) +{ + int i, nLength = strlen(pString); + Vec_StrGrow( p, p->nSize + nLength ); + for ( i = 0; i < nLength; i++ ) + p->pArray[p->nSize + i] = pString[i]; + p->nSize += nLength; +} + +/**Function************************************************************* + Synopsis [Returns the last entry and removes it from the list.] Description [] |