From 34a6c9fe29188f91eb7919e4f8cd7c0cce6daed5 Mon Sep 17 00:00:00 2001 From: Michael Stumpf Date: Tue, 27 Nov 2018 14:22:26 +0100 Subject: [PATCH] fixed closing bug in tarmode --- matlab/@ini/ini.m | 14 +++++++++----- matlab/@ucf/ucf.m | 11 ++++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/matlab/@ini/ini.m b/matlab/@ini/ini.m index edc3c9e..1ba013b 100644 --- a/matlab/@ini/ini.m +++ b/matlab/@ini/ini.m @@ -31,6 +31,8 @@ classdef ini < handle parse(par,varargin{:}); obj.resetPublicProperties(); obj.resetPrivateProperties(); + obj.fileID = -1; + obj.tarflag = false; obj.setVerbosity(par.Results.verbosity); end function delete(obj) @@ -83,10 +85,14 @@ classdef ini < handle function close(obj) % obj.close() % Closes a file. - tarmode = obj.tarflag; obj.resetPublicProperties(); obj.resetPrivateProperties(); - if obj.fileID<0 || tarmode + if obj.tarflag + obj.tarflag = false; + obj.fileID = -1; + return; + end + if obj.fileID<0 return; end status = fclose(obj.fileID); @@ -94,8 +100,7 @@ classdef ini < handle warning('Error while closing: %d',status); return; end - - obj.fileID = -1; + obj.fileID = -1; end function setVerbosity(obj,flag) % obj.setVerbosity(flag) @@ -215,7 +220,6 @@ classdef ini < handle obj.fileBeg = []; obj.fileEnd = []; obj.ioflag = []; - obj.tarflag = []; obj.content = []; end end diff --git a/matlab/@ucf/ucf.m b/matlab/@ucf/ucf.m index 5e1719c..7b9cdb4 100644 --- a/matlab/@ucf/ucf.m +++ b/matlab/@ucf/ucf.m @@ -93,6 +93,8 @@ classdef ucf < handle obj.resetPrivateProperties(); obj.resetCurrentStep(); obj.resetCurrentSet(); + obj.fileID = -1; + obj.tarflag = false; obj.setVerbosity(par.Results.verbosity); obj.setDebug(par.Results.debug); end @@ -301,12 +303,16 @@ classdef ucf < handle function close(obj) % obj.close() % Closes a file - tarmode = obj.tarflag; obj.resetPublicProperties(); obj.resetPrivateProperties(); obj.resetCurrentStep(); obj.resetCurrentSet(); - if obj.fileID<0 || tarmode + if obj.tarflag + obj.tarflag = false; + obj.fileID = -1; + return; + end + if obj.fileID<0 return; end status = fclose(obj.fileID); @@ -760,7 +766,6 @@ classdef ucf < handle obj.fileEnd = []; obj.typeID = []; obj.ioflag = []; - obj.tarflag = []; obj.creationTimeUnix = []; obj.versionMajor = []; obj.versionMinor = [];