Code

Require a pageBox in the constructor for GfxState so that we do not always need to...
[inkscape.git] / src / extension / internal / emf-win32-inout.cpp
index b9d65f50cd80409f11549dc44f2dac777b70dd7b..59f538ab919a5cd109072d5e0443bba83b34ea35 100644 (file)
@@ -505,6 +505,15 @@ myEnhMetaFileProc(HDC hDC, HANDLETABLE *lpHTable, ENHMETARECORD *lpEMFR, int nOb
             if (pEmr->nHandles) {
                 d->n_obj = pEmr->nHandles;
                 d->emf_obj = new EMF_OBJECT[d->n_obj];
+
+                // Init the new emf_obj list elements to null, provided the
+                // dynamic allocation succeeded.
+                if ( d->emf_obj != NULL )
+                {
+                    for( unsigned int i=0; i < d->n_obj; ++i )
+                        d->emf_obj[i].lpEMFR = NULL;
+                } //if
+
             } else {
                 d->emf_obj = NULL;
             }
@@ -816,7 +825,7 @@ myEnhMetaFileProc(HDC hDC, HANDLETABLE *lpHTable, ENHMETARECORD *lpEMFR, int nOb
                     }
                 }
             } else {
-                if (index >= 0 && index < d->n_obj) {
+                if (index >= 0 && index < (unsigned int)d->n_obj) {
                     switch (d->emf_obj[index].type)
                     {
                         case EMR_CREATEPEN:
@@ -1349,7 +1358,7 @@ EmfWin32::open( Inkscape::Extension::Input *mod, const gchar *uri )
             delete_object(&d, i);
         delete[] d.emf_obj;
     }
-    
+
     if (d.style.stroke_dash.dash)
         delete[] d.style.stroke_dash.dash;