richter 00/12/04 23:21:54
Modified: . Tag: Embperl2c epcomp.c epdom.c
Log:
Emberl 2 - Memorymanagement
Revision Changes Path
No revision
No revision
1.4.2.20 +5 -3 embperl/Attic/epcomp.c
Index: epcomp.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epcomp.c,v
retrieving revision 1.4.2.19
retrieving revision 1.4.2.20
diff -u -r1.4.2.19 -r1.4.2.20
--- epcomp.c 2000/12/05 04:45:21 1.4.2.19
+++ epcomp.c 2000/12/05 07:21:53 1.4.2.20
@@ -1392,7 +1392,12 @@
if ((rc = EvalOnly (r, r -> pProgRun, ppCompResult, G_SCALAR, "")) != ok)
return rc ;
+
+ StringFree (&r -> pProgRun) ;
+ StringFree (&r -> pProgDef) ;
+
cl4 = clock () ;
+
#ifdef CLOCKS_PER_SEC
if (r -> bDebug)
{
@@ -1404,9 +1409,6 @@
DomStats () ;
}
#endif
-
- StringFree (&r -> pProgRun) ;
- StringFree (&r -> pProgDef) ;
return ok ;
}
1.4.2.8 +41 -5 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.4.2.7
retrieving revision 1.4.2.8
diff -u -r1.4.2.7 -r1.4.2.8
--- epdom.c 2000/12/05 04:45:21 1.4.2.7
+++ epdom.c 2000/12/05 07:21:53 1.4.2.8
@@ -42,9 +42,45 @@
tIndex xCheckpointCache[512] ;
-#define dom_malloc(s) (nMemUsage += s, malloc(s))
-#define dom_free(s) (free(s))
+//#define dom_malloc(s) (nMemUsage += s, malloc(s))
+void * dom_malloc (size_t n)
+ {
+ void * m = malloc(n + sizeof (size_t)) ;
+ if (m)
+ {
+ nMemUsage += n ;
+ *((size_t *)m)++ = n ;
+ }
+
+ return m ;
+ }
+
+void * dom_realloc (void * s, size_t n)
+ {
+ void * m = ((size_t *)s) - 1 ;
+ nMemUsage -= *((size_t *)s) ;
+ if (m = realloc (m, n + sizeof (size_t)))
+ {
+ nMemUsage += n ;
+ *((size_t *)m)++ = n ;
+ }
+ return m ;
+ }
+
+//#define dom_free(s) (free(s))
+
+void dom_free (void * s)
+ {
+ void * m = ((size_t *)s) - 1 ;
+ nMemUsage -= *((size_t *)m) ;
+ free (m) ;
+ }
+
+
+
+
+
/* forward */
static int DomTree_free (SV * pSV, MAGIC * mg) ;
@@ -169,7 +205,7 @@
struct tArrayCtrl * pNew ;
int nNewMax = pCtrl -> nFill + numElements + pCtrl -> nAdd ;
- if ((pNew = realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct
tArrayCtrl))) == NULL)
+ if ((pNew = dom_realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof
(struct tArrayCtrl))) == NULL)
return 0 ;
*(void * *)pArray = (struct tArray *)(pNew + 1) ;
@@ -233,7 +269,7 @@
if (nNewMax < numElements)
nNewMax = numElements + pCtrl -> nAdd ;
- if ((pNew = realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof (struct
tArrayCtrl))) == NULL)
+ if ((pNew = dom_realloc (pCtrl, nNewMax * pCtrl -> nElementSize + sizeof
(struct tArrayCtrl))) == NULL)
return 0 ;
p = (char *)(pNew + 1) ;
@@ -976,7 +1012,7 @@
if (nSize == 0)
nSize = nInitialNodePadSize ;
else
- nSize = (nSize + sizeof (struct tNodePad) / nInitialNodePadSize + 1) *
nInitialNodePadSize ;
+ nSize = ((nSize + sizeof (struct tNodePad)) / nInitialNodePadSize + 1) *
nInitialNodePadSize ;
if ((pDomTree -> pLookup[xNdx] = pChilds = dom_malloc (nSize)) == NULL)
return NULL ;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]