diff --git a/src/preferences/filetypes/ApplicationTypeWindow.cpp b/src/preferences/filetypes/ApplicationTypeWindow.cpp index f21b4009cf..7022cd6f00 100644 --- a/src/preferences/filetypes/ApplicationTypeWindow.cpp +++ b/src/preferences/filetypes/ApplicationTypeWindow.cpp @@ -703,7 +703,8 @@ ApplicationTypeWindow::_Save() SupportedTypeItem* item = dynamic_cast( fTypeListView->ItemAt(i)); - supportedTypes.AddString("types", item->Type()); + if (item != NULL) + supportedTypes.AddString("types", item->Type()); } version_info versionInfo; @@ -735,7 +736,8 @@ ApplicationTypeWindow::_Save() SupportedTypeItem* item = dynamic_cast( fTypeListView->ItemAt(i)); - item->Icon().CopyTo(info, item->Type(), true); + if (item != NULL) + item->Icon().CopyTo(info, item->Type(), true); } } diff --git a/src/preferences/filetypes/IconView.cpp b/src/preferences/filetypes/IconView.cpp index 0381979af0..92b6598aa6 100644 --- a/src/preferences/filetypes/IconView.cpp +++ b/src/preferences/filetypes/IconView.cpp @@ -574,8 +574,8 @@ IconView::MessageReceived(BMessage* message) if (message->WasDropped() && message->ReturnAddress() != BMessenger(this) && AcceptsDrag(message)) { // set icon from message - BBitmap* mini = NULL; - BBitmap* large = NULL; + BBitmap *mini = NULL; + BBitmap *large = NULL; const uint8* data = NULL; ssize_t size = 0; @@ -591,10 +591,15 @@ IconView::MessageReceived(BMessage* message) if (large != NULL || mini != NULL || (data != NULL && size > 0)) _SetIcon(large, mini, data, size); - - entry_ref ref; - if (message->FindRef("refs", &ref) == B_OK) - _SetIcon(&ref); + else { + entry_ref ref; + if (message->FindRef("refs", &ref) == B_OK) + _SetIcon(&ref); + } + + delete(large); + delete(mini); + delete(data); return; }