long m_lAllocSize; // current alloc size
long m_lRefCount; // number of current users
CRITICAL_SECTION m_cs; // access lock
+#ifdef _DEBUG_MEM
+ FILE* m_pLog;
+#endif
};
// #define _DEBUG_MEM
ASSERT(bRet);
InitializeCriticalSection(&m_cs);
+#ifdef _DEBUG_MEM
+ m_pLog = 0;
+#endif
Init();
}
{
ASSERT(HeapValidate(m_hHeap, HEAP_NO_SERIALIZE, NULL));
WALKHEAPTRACE();
+#ifdef _DEBUG_MEM
+ MemoryUsageMessage(NULL, 0, 0, 0);
+#endif
DeleteCriticalSection(&m_cs);
BOOL bRet = HeapDestroy(m_hHeap);
ASSERT(bRet);
int VMem::IsLocked(void)
{
+#if 0
+ /* XXX TryEnterCriticalSection() is not available in some versions
+ * of Windows 95. Since this code is not used anywhere yet, we
+ * skirt the issue for now. */
BOOL bAccessed = TryEnterCriticalSection(&m_cs);
if(bAccessed) {
LeaveCriticalSection(&m_cs);
}
return !bAccessed;
+#else
+ ASSERT(0); /* alarm bells for when somebody calls this */
+ return 0;
+#endif
}
}
#ifdef _DEBUG_MEM
-#define LOG_FILENAME "P:\\Apps\\Perl\\Result.txt"
+#define LOG_FILENAME ".\\MemLog.txt"
void MemoryUsageMessage(char *str, long x, long y, int c)
{
- static FILE* fp = NULL;
char szBuffer[512];
if(str) {
- if(!fp)
- fp = fopen(LOG_FILENAME, "w");
+ if(!m_pLog)
+ m_pLog = fopen(LOG_FILENAME, "w");
sprintf(szBuffer, str, x, y, c);
- fputs(szBuffer, fp);
+ fputs(szBuffer, m_pLog);
}
else {
- fflush(fp);
- fclose(fp);
+ fflush(m_pLog);
+ fclose(m_pLog);
+ m_pLog = 0;
}
}