aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flsndobj.cpp
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2003-01-02 04:37:31 +0000
committerThomas Grill <xovo@users.sourceforge.net>2003-01-02 04:37:31 +0000
commit10e0265429983876e2fd69950df4d51c8faf5635 (patch)
tree3e1c45e40bedd1b92225696ce955b902c4daf8e0 /externals/grill/flext/source/flsndobj.cpp
parent59e66762250fe61d570c5baf6c9ce6896a09e027 (diff)
""
svn path=/trunk/; revision=316
Diffstat (limited to 'externals/grill/flext/source/flsndobj.cpp')
-rw-r--r--externals/grill/flext/source/flsndobj.cpp28
1 files changed, 17 insertions, 11 deletions
diff --git a/externals/grill/flext/source/flsndobj.cpp b/externals/grill/flext/source/flsndobj.cpp
index a18da9d3..e5203556 100644
--- a/externals/grill/flext/source/flsndobj.cpp
+++ b/externals/grill/flext/source/flsndobj.cpp
@@ -37,14 +37,16 @@ void flext_sndobj::ClearObjs()
FreeObjs();
if(inobj) {
- for(int i = 0; i < inobjs; ++i) { delete inobj[i]; delete tmpobj[i]; }
+ for(int i = 0; i < inobjs; ++i) delete inobj[i];
delete[] inobj; inobj = NULL;
+ }
+ if(tmpobj) {
+ for(int i = 0; i < inobjs; ++i) delete tmpobj[i];
delete[] tmpobj; tmpobj = NULL;
- inobjs = 0;
}
if(outobj) {
for(int i = 0; i < outobjs; ++i) delete outobj[i];
- delete[] outobj; outobj = NULL; outobjs = 0;
+ delete[] outobj; outobj = NULL;
}
}
@@ -62,16 +64,20 @@ void flext_sndobj::m_dsp(int n,t_sample *const *in,t_sample *const *out)
smprt = Samplerate();
// set up sndobjs for inlets and outlets
- inobj = new Inlet *[inobjs];
- tmpobj = new SndObj *[inobjs];
- for(i = 0; i < inobjs; ++i) {
- inobj[i] = new Inlet(in[i],blsz,smprt);
- tmpobj[i] = new SndObj(NULL,blsz,smprt);
+ if(inobjs) {
+ inobj = new Inlet *[inobjs];
+ tmpobj = new SndObj *[inobjs];
+ for(i = 0; i < inobjs; ++i) {
+ inobj[i] = new Inlet(in[i],blsz,smprt);
+ tmpobj[i] = new SndObj(NULL,blsz,smprt);
+ }
+ }
+ if(outobjs) {
+ outobj = new Outlet *[outobjs];
+ for(i = 0; i < outobjs; ++i) outobj[i] = new Outlet(out[i],blsz,smprt);
}
- outobj = new Outlet *[outobjs];
- for(i = 0; i < outobjs; ++i) outobj[i] = new Outlet(out[i],blsz,smprt);
- NewObjs();
+ if(!NewObjs()) ClearObjs();
}
else {
// assign changed input/output vectors