From 5c99578919439680fb6b8db559410dab7fe26fe6 Mon Sep 17 00:00:00 2001 From: Federico Felici <federico.felici@epfl.ch> Date: Tue, 10 Dec 2019 18:55:49 +0100 Subject: [PATCH] Avoid adding same algoobj to list twice --- code/classes/SCDclass_algo.m | 2 +- code/classes/SCDclass_expcode.m | 40 +++++++++++++++++---------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/code/classes/SCDclass_algo.m b/code/classes/SCDclass_algo.m index 3739748..d31df20 100644 --- a/code/classes/SCDclass_algo.m +++ b/code/classes/SCDclass_algo.m @@ -245,7 +245,7 @@ classdef SCDclass_algo function printinits(obj) if(~isempty(obj.stdinits)) for ii=1:numel(obj.stdinits) - fprintf('%s -> %s in workspace %s \n',char(obj.stdinits{ii}{1}),char(obj.stdinits{ii}{2},obj.stdinits{ii}{3})); + fprintf('%s -> %s in workspace %s \n',char(obj.stdinits{ii}{1}),char(obj.stdinits{ii}{2}{1}),char(obj.stdinits{ii}{3})); end end end diff --git a/code/classes/SCDclass_expcode.m b/code/classes/SCDclass_expcode.m index 00d9e42..5665cf8 100644 --- a/code/classes/SCDclass_expcode.m +++ b/code/classes/SCDclass_expcode.m @@ -399,27 +399,29 @@ classdef SCDclass_expcode % Importing inits algoinits=algo.getinits; if(numel(algoinits)>0) - for ii=1:numel(algoinits) - toadd=1; - if(~isempty(obj.stdinits)) - for jj=1:numel(obj.stdinits) - for kk=1:numel(obj.stdinits{jj}{2}) - if(strcmp(char(obj.stdinits{jj}{2}{kk}),algoinits{ii}{2})) - warning('SCDclass_expcode:addalgorithm','An init driving the structure %s has already been added, ignoring algorithm object.\d',algoinits{ii}{2}) - toadd=0; - end - end - end - end - if(toadd) - temp=cell(10,1); - temp{1}=algoinits{ii}{1}; - temp{2}=algoinits{ii}{2}; - obj.stdinits{end+1}=temp; - obj.algoobjlist{end+1}=algo; %% Add the full algorithm object here, to see if it is fine + toadd = ones(numel(algoinits),1); + for ii=1:numel(algoinits) + if(~isempty(obj.stdinits)) + for jj=1:numel(obj.stdinits) + for kk=1:numel(obj.stdinits{jj}{2}) + if(strcmp(char(obj.stdinits{jj}{2}{kk}),algoinits{ii}{2})) + warning('SCDclass_expcode:addalgorithm','An init driving the structure %s has already been added, ignoring this init.\d',algoinits{ii}{2}) + toadd(ii)=0; + end end + end end - end + if toadd(ii) + temp=cell(10,1); + temp{1}=algoinits{ii}{1}; + temp{2}=algoinits{ii}{2}; + obj.stdinits{end+1}=temp; + end + end + if any(toadd) % if any inits from this algoobj were taken + obj.algoobjlist{end+1}=algo; %% Add the full algorithm object here, to see if it is fine + end + end end function out = getexportedtps(obj) -- GitLab