From 335133eaef7053d7423c0bac33e95d913e1b90f5 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Fri, 11 Nov 2016 13:16:23 +0100
Subject: [PATCH] Move expansion only when needed

---
 spm.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/spm.c b/spm.c
index 878f5d81..12424166 100644
--- a/spm.c
+++ b/spm.c
@@ -294,10 +294,10 @@ spmFindBase( const pastix_spm_t *spm )
 int
 spmConvert( int ofmttype, pastix_spm_t *spm )
 {
-    if ( spm->dof != 1 ) {
-        spm = spmExpand( spm );
-    }
     if ( conversionTable[spm->fmttype][ofmttype][spm->flttype] ) {
+        if ( spm->dof != 1 ) {
+            return PASTIX_ERR_NOTIMPLEMENTED;
+        }
         return conversionTable[spm->fmttype][ofmttype][spm->flttype]( spm );
     }
     else {
@@ -420,6 +420,10 @@ spmNorm( int ntype,
         ;
     }
 
+    if ( spmtmp != spm ) {
+        spmExit( spmtmp );
+        free(spmtmp);
+    }
     return norm;
 }
 
-- 
GitLab