In BUnarchiver::IsInstantiated(), catch a possible NULL dereference, make archive parameter to BUnarchiver::IsArchiveManaged() const.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37751 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -129,7 +129,7 @@ public:
|
|||||||
void AssumeOwnership(BArchivable* archivable);
|
void AssumeOwnership(BArchivable* archivable);
|
||||||
void RelinquishOwnership(BArchivable* archivable);
|
void RelinquishOwnership(BArchivable* archivable);
|
||||||
|
|
||||||
static bool IsArchiveManaged(BMessage* archive);
|
static bool IsArchiveManaged(const BMessage* archive);
|
||||||
static BMessage* PrepareArchive(BMessage*& archive);
|
static BMessage* PrepareArchive(BMessage*& archive);
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
|
|||||||
@@ -452,6 +452,7 @@ BUnarchiver::FindObject<BArchivable>(const char* name,
|
|||||||
bool
|
bool
|
||||||
BUnarchiver::IsInstantiated(int32 token)
|
BUnarchiver::IsInstantiated(int32 token)
|
||||||
{
|
{
|
||||||
|
_CallDebuggerIfManagerNull();
|
||||||
return fManager->IsInstantiated(token);
|
return fManager->IsInstantiated(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -504,7 +505,7 @@ BUnarchiver::RelinquishOwnership(BArchivable* archivable)
|
|||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
BUnarchiver::IsArchiveManaged(BMessage* archive)
|
BUnarchiver::IsArchiveManaged(const BMessage* archive)
|
||||||
{
|
{
|
||||||
// managed child archives will return here
|
// managed child archives will return here
|
||||||
if (BManagerBase::ManagerPointer(archive))
|
if (BManagerBase::ManagerPointer(archive))
|
||||||
|
|||||||
Reference in New Issue
Block a user