[haiku-commits] haiku: hrev45236 - src/apps/showimage

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 5 Feb 2013 23:31:55 +0100 (CET)

hrev45236 adds 1 changeset to branch 'master'
old head: 43ee85f69ca063460212f6e357a86d32623056e4
new head: 03352b04c579d15b65c6a7cc1ed3648c8911a1bd
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=03352b0+%5E43ee85f

----------------------------------------------------------------------------

03352b0: Fix #7736. Avoid memory corruption
  
  Signed-off-by: Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>

                                                [ Janus <janus2@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev45236
Commit:      03352b04c579d15b65c6a7cc1ed3648c8911a1bd
URL:         http://cgit.haiku-os.org/haiku/commit/?id=03352b0
Author:      Janus <janus2@xxxxxxxxx>
Date:        Fri Nov 30 22:21:33 2012 UTC
Committer:   Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>
Commit-Date: Tue Feb  5 22:31:02 2013 UTC

Ticket:      https://dev.haiku-os.org/ticket/7736

----------------------------------------------------------------------------

2 files changed, 9 insertions(+), 5 deletions(-)
src/apps/showimage/ShowImageView.cpp | 11 +++++++----
src/apps/showimage/ShowImageView.h   |  3 ++-

----------------------------------------------------------------------------

diff --git a/src/apps/showimage/ShowImageView.cpp 
b/src/apps/showimage/ShowImageView.cpp
index e6d9a70..d82d3c8 100644
--- a/src/apps/showimage/ShowImageView.cpp
+++ b/src/apps/showimage/ShowImageView.cpp
@@ -347,12 +347,13 @@ ShowImageView::SetImage(const BMessage* message)
                || message->FindRef("ref", &ref) != B_OK || bitmap == NULL)
                return B_ERROR;
 
-       status_t status = SetImage(&ref, bitmap);
+       BitmapOwner* bitmapOwner;
+       message->FindPointer("bitmapOwner", (void**)&bitmapOwner);
+
+       status_t status = SetImage(&ref, bitmap, bitmapOwner);
        if (status == B_OK) {
                fFormatDescription = message->FindString("type");
                fMimeType = message->FindString("mime");
-
-               message->FindPointer("bitmapOwner", (void**)&fBitmapOwner);
        }
 
        return status;
@@ -360,7 +361,8 @@ ShowImageView::SetImage(const BMessage* message)
 
 
 status_t
-ShowImageView::SetImage(const entry_ref* ref, BBitmap* bitmap)
+ShowImageView::SetImage(const entry_ref* ref, BBitmap* bitmap,
+               BitmapOwner* bitmapOwner)
 {
        // Delete the old one, and clear everything
        fUndo.Clear();
@@ -369,6 +371,7 @@ ShowImageView::SetImage(const entry_ref* ref, BBitmap* 
bitmap)
        _DeleteBitmap();
 
        fBitmap = bitmap;
+       fBitmapOwner = bitmapOwner;
        if (ref == NULL)
                fCurrentRef.device = -1;
        else
diff --git a/src/apps/showimage/ShowImageView.h 
b/src/apps/showimage/ShowImageView.h
index b14985b..bdf4d10 100644
--- a/src/apps/showimage/ShowImageView.h
+++ b/src/apps/showimage/ShowImageView.h
@@ -52,7 +52,8 @@ public:
                        void                            SetTrackerMessenger(
                                                                        const 
BMessenger& trackerMessenger);
                        status_t                        SetImage(const 
BMessage* message);
-                       status_t                        SetImage(const 
entry_ref* ref, BBitmap* bitmap);
+                       status_t                        SetImage(const 
entry_ref* ref, BBitmap* bitmap,
+                                                                       
BitmapOwner* bitmapOwner);
                        const entry_ref*        Image() const { return 
&fCurrentRef; }
                        BBitmap*                        Bitmap();
 


Other related posts:

  • » [haiku-commits] haiku: hrev45236 - src/apps/showimage - axeld