From 749f2bdc17f9d9233aa9612872c3d44d4707ec18 Mon Sep 17 00:00:00 2001
From: fangq <fangq@786e58fb-9377-0410-9ff7-e4ac0ac0635c>
Date: Wed, 28 Aug 2013 18:36:54 +0000
Subject: [PATCH] handling empty matrix in saveubjson

git-svn-id: http://svn.code.sf.net/p/iso2mesh/code/trunk/jsonlab@413 786e58fb-9377-0410-9ff7-e4ac0ac0635c
---
 examples/jsonlab_selftest.m | 10 ++++++++++
 saveubjson.m                |  7 ++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/examples/jsonlab_selftest.m b/examples/jsonlab_selftest.m
index c29ffbe..1caaf28 100644
--- a/examples/jsonlab_selftest.m
+++ b/examples/jsonlab_selftest.m
@@ -10,3 +10,13 @@ for i=1:4
     fprintf(1,'%s\n',json);
     data=loadjson(json);
 end
+
+for i=1:4
+    fname=sprintf('example%d.json',i);
+    if(exist(fname,'file')==0) break; end
+    fprintf(1,'===============================================\n>> %s\n',fname);
+    json=saveubjson('data',loadjson(fname));
+    fprintf(1,'%s\n',json);
+    data=loadubjson(json);
+    savejson('',data)
+end
diff --git a/saveubjson.m b/saveubjson.m
index e840cb0..0a9953c 100644
--- a/saveubjson.m
+++ b/saveubjson.m
@@ -237,7 +237,12 @@ if(length(size(item))>2 || issparse(item) || ~isreal(item) || ...
       if(isempty(name))
     	txt=['{' S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1)) ];
       else
-    	txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))];
+          if(isempty(item))
+              txt=[S_(checkname(name,varargin{:})),'Z'];
+              return;
+          else
+    	      txt=[S_(checkname(name,varargin{:})),'{',S_('_ArrayType_'),S_(class(item)),padding0,S_('_ArraySize_'),I_a(size(item),cid(1))];
+          end
       end
 else
     if(isempty(name))
-- 
GitLab