JBoolean JMemoryManager::RecordFilter::Match ( const JMMRecord& record ) const { JBoolean match = kJTrue; if (!includeInternal && record.IsManagerMemory()) { match = kJFalse; } if (record.GetSize() < minSize) { match = kJFalse; } const JSize newFileLength = strlen(record.GetNewFile()); if (match && fileName != NULL && newFileLength == fileName->GetLength()) { if (record.GetNewFile() != *fileName) { match = kJFalse; } } else if (match && fileName != NULL) { const JCharacter *s1, *s2; JSize l1, l2; if (newFileLength > fileName->GetLength()) { s1 = record.GetNewFile(); l1 = newFileLength; s2 = *fileName; l2 = fileName->GetLength(); } else { s1 = *fileName; l1 = fileName->GetLength(); s2 = record.GetNewFile(); l2 = newFileLength; } if (*(s1 + l1 - l2 - 1) != ACE_DIRECTORY_SEPARATOR_CHAR || strcmp(s1 + l1 - l2, s2) != 0) { match = kJFalse; } } return match; }
void JMMErrorPrinter::HandleMultipleAllocation ( const JMMRecord& thisRecord, const JMMRecord& firstRecord ) { if (itsPrintErrorsFlag) { cout << "*** memory error: item allocated as " << thisRecord.DeleteTypeName() << " at\n " << thisRecord.GetNewFile() << ":" << thisRecord.GetNewLine() << "\n was first allocated as " << firstRecord.DeleteTypeName() << " at\n " << firstRecord.GetNewFile() << ":" << firstRecord.GetNewLine() << endl; } }
void JMMErrorPrinter::HandleArrayDeletedAsObject ( const JMMRecord& record ) { if (itsPrintErrorsFlag) { cout << "*** memory error: Block allocated as array at\n " << record.GetNewFile() << ":" << record.GetNewLine() << "\n was deleted as object at\n " << record.GetDeleteFile() << ":" << record.GetDeleteLine() << endl; } }