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:
Fredrik Modeen
2008-09-12 14:15:47 +00:00
parent ee652e3aab
commit f1ca556caf
2 changed files with 15 additions and 8 deletions
@@ -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);
} }
} }
+11 -6
View File
@@ -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; entry_ref ref;
if (message->FindRef("refs", &ref) == B_OK) if (message->FindRef("refs", &ref) == B_OK)
_SetIcon(&ref); _SetIcon(&ref);
}
delete(large);
delete(mini);
delete(data);
return; return;
} }