]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/bitmap.cpp
Check for NULL before dereferencing
[wxWidgets.git] / src / motif / bitmap.cpp
index dc6bb3bb82f27278cd23362a1ec684f503ce6310..fe00dc46faae2fe655e743a57c7137e10ae401bb 100644 (file)
@@ -143,7 +143,7 @@ wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth)
     (void) Create(data, type, width, height, depth);
 }
 
-wxBitmap::wxBitmap(const wxString& filename, long type)
+wxBitmap::wxBitmap(const wxString& filename, int type)
 {
     LoadFile(filename, (int)type);
 }
@@ -167,6 +167,12 @@ bool wxBitmap::CreateFromXpm(const char **bits)
     return Create(bits, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0);
 }
 
+bool wxBitmap::CopyFromIcon(const wxIcon& icon)
+{
+    *this = icon;
+    return TRUE;
+}
+
 bool wxBitmap::Create(int w, int h, int d)
 {
     UnRef();
@@ -223,7 +229,7 @@ bool wxBitmap::Create(void *data, long type, int width, int height, int depth)
     wxBitmapHandler *handler = FindHandler(type);
 
     if ( handler == NULL ) {
-        wxLogWarning("no data bitmap handler for type %d defined.", type);
+        wxLogWarning("no data bitmap handler for type %ld defined.", type);
 
         return FALSE;
     }
@@ -823,6 +829,8 @@ void wxBitmap::InitStandardHandlers()
 
 WXPixmap wxBitmap::GetLabelPixmap (WXWidget w)
 {
+    if (!M_BITMAPDATA)
+        return (WXPixmap)NULL;
     if (M_BITMAPDATA->m_image == (WXPixmap) 0)
         return M_BITMAPDATA->m_pixmap;
 
@@ -899,7 +907,9 @@ WXPixmap wxBitmap::GetArmPixmap (WXWidget w)
 WXPixmap wxBitmap::GetInsensPixmap (WXWidget w)
 {
     Display *dpy = (Display*) M_BITMAPDATA->m_display;
-
+    
+    if (!M_BITMAPDATA)
+        return (WXPixmap)NULL;
     if (M_BITMAPDATA->m_insensPixmap)
         return M_BITMAPDATA->m_insensPixmap;