summaryrefslogtreecommitdiffstats
path: root/src/misc/vec/vecVec.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-06-22 10:30:22 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-06-22 10:30:22 -0700
commit735a831e13684334d55b422993a80d94d356f180 (patch)
tree0bf12906593cf6f6010c107cb9cb8f57fb335b79 /src/misc/vec/vecVec.h
parent072c264f761268838e2613d0e6735d1a721e0ae9 (diff)
downloadabc-735a831e13684334d55b422993a80d94d356f180.tar.gz
abc-735a831e13684334d55b422993a80d94d356f180.tar.bz2
abc-735a831e13684334d55b422993a80d94d356f180.zip
Added memory reporting to &vta.
Diffstat (limited to 'src/misc/vec/vecVec.h')
-rw-r--r--src/misc/vec/vecVec.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/misc/vec/vecVec.h b/src/misc/vec/vecVec.h
index 8bed4574..6d309dc4 100644
--- a/src/misc/vec/vecVec.h
+++ b/src/misc/vec/vecVec.h
@@ -247,6 +247,22 @@ static inline int Vec_VecSize( Vec_Vec_t * p )
SeeAlso []
***********************************************************************/
+static inline int Vec_VecCap( Vec_Vec_t * p )
+{
+ return p->nCap;
+}
+
+/**Function*************************************************************
+
+ Synopsis []
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
static inline int Vec_VecLevelSize( Vec_Vec_t * p, int i )
{
return Vec_PtrSize( (Vec_Ptr_t *)p->pArray[i] );
@@ -673,6 +689,37 @@ static inline void Vec_VecPrintInt( Vec_Vec_t * p, int fSkipSingles )
}
}
+/**Function*************************************************************
+
+ Synopsis [Returns memory, in bytes, used by the vector.]
+
+ Description []
+
+ SideEffects []
+
+ SeeAlso []
+
+***********************************************************************/
+static inline double Vec_VecMemory( Vec_Vec_t * p )
+{
+ int i;
+ Vec_Ptr_t * vVec;
+ double Mem = sizeof(Vec_Vec_t);
+ Mem += Vec_VecCap(p) * sizeof(void *);
+ Vec_VecForEachLevel( p, vVec, i )
+ Mem += sizeof(Vec_Ptr_t) + Vec_PtrCap(vVec) * sizeof(void *);
+ return Mem;
+}
+static inline double Vec_VecMemoryInt( Vec_Vec_t * p )
+{
+ int i;
+ Vec_Int_t * vVec;
+ double Mem = sizeof(Vec_Vec_t);
+ Mem += Vec_VecCap(p) * sizeof(void *);
+ Vec_VecForEachLevelInt( p, vVec, i )
+ Mem += sizeof(Vec_Int_t) + Vec_IntCap(vVec) * sizeof(int);
+ return Mem;
+}
ABC_NAMESPACE_HEADER_END