Fixed CID 321, 868: check item for NULL and delete recource leak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27453 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -703,7 +703,8 @@ ApplicationTypeWindow::_Save()
|
|||||||
SupportedTypeItem* item = dynamic_cast<SupportedTypeItem*>(
|
SupportedTypeItem* item = dynamic_cast<SupportedTypeItem*>(
|
||||||
fTypeListView->ItemAt(i));
|
fTypeListView->ItemAt(i));
|
||||||
|
|
||||||
supportedTypes.AddString("types", item->Type());
|
if (item != NULL)
|
||||||
|
supportedTypes.AddString("types", item->Type());
|
||||||
}
|
}
|
||||||
|
|
||||||
version_info versionInfo;
|
version_info versionInfo;
|
||||||
@@ -735,7 +736,8 @@ ApplicationTypeWindow::_Save()
|
|||||||
SupportedTypeItem* item = dynamic_cast<SupportedTypeItem*>(
|
SupportedTypeItem* item = dynamic_cast<SupportedTypeItem*>(
|
||||||
fTypeListView->ItemAt(i));
|
fTypeListView->ItemAt(i));
|
||||||
|
|
||||||
item->Icon().CopyTo(info, item->Type(), true);
|
if (item != NULL)
|
||||||
|
item->Icon().CopyTo(info, item->Type(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -574,8 +574,8 @@ IconView::MessageReceived(BMessage* message)
|
|||||||
if (message->WasDropped() && message->ReturnAddress() != BMessenger(this)
|
if (message->WasDropped() && message->ReturnAddress() != BMessenger(this)
|
||||||
&& AcceptsDrag(message)) {
|
&& AcceptsDrag(message)) {
|
||||||
// set icon from message
|
// set icon from message
|
||||||
BBitmap* mini = NULL;
|
BBitmap *mini = NULL;
|
||||||
BBitmap* large = NULL;
|
BBitmap *large = NULL;
|
||||||
const uint8* data = NULL;
|
const uint8* data = NULL;
|
||||||
ssize_t size = 0;
|
ssize_t size = 0;
|
||||||
|
|
||||||
@@ -591,10 +591,15 @@ IconView::MessageReceived(BMessage* message)
|
|||||||
|
|
||||||
if (large != NULL || mini != NULL || (data != NULL && size > 0))
|
if (large != NULL || mini != NULL || (data != NULL && size > 0))
|
||||||
_SetIcon(large, mini, data, size);
|
_SetIcon(large, mini, data, size);
|
||||||
|
else {
|
||||||
|
entry_ref ref;
|
||||||
|
if (message->FindRef("refs", &ref) == B_OK)
|
||||||
|
_SetIcon(&ref);
|
||||||
|
}
|
||||||
|
|
||||||
entry_ref ref;
|
delete(large);
|
||||||
if (message->FindRef("refs", &ref) == B_OK)
|
delete(mini);
|
||||||
_SetIcon(&ref);
|
delete(data);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user