From 1cea8c39594c76e5008db7b293483119b5247f46 Mon Sep 17 00:00:00 2001 From: scislac Date: Tue, 10 Jul 2007 20:39:45 +0000 Subject: [PATCH] patch by gorodish, fixes bug 1692611 (win32 EMF crash) --- src/extension/internal/emf-win32-inout.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/extension/internal/emf-win32-inout.cpp b/src/extension/internal/emf-win32-inout.cpp index eb4995885..59f538ab9 100644 --- a/src/extension/internal/emf-win32-inout.cpp +++ b/src/extension/internal/emf-win32-inout.cpp @@ -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; } @@ -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; -- 2.30.2