From 1a23e8233e6c1cbc30b9ddee4df153c21f4b282b Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 31 Aug 2004 04:07:35 +0000 Subject: "" svn path=/trunk/; revision=1982 --- externals/grill/vasp/changes.txt | 2 ++ externals/grill/vasp/source/main.cpp | 2 +- externals/grill/vasp/source/obj_imm.cpp | 2 ++ externals/grill/vasp/source/obj_peaks.cpp | 2 ++ externals/grill/vasp/source/obj_q.cpp | 4 ++++ externals/grill/vasp/source/ops_search.cpp | 9 ++++++--- 6 files changed, 17 insertions(+), 4 deletions(-) (limited to 'externals/grill/vasp') diff --git a/externals/grill/vasp/changes.txt b/externals/grill/vasp/changes.txt index 5d79e4dc..8a2a7dc1 100644 --- a/externals/grill/vasp/changes.txt +++ b/externals/grill/vasp/changes.txt @@ -21,6 +21,8 @@ Version history: - ADD: [vasp.channels?] reports number of channels in the first vasp vector (buffer/array) - CHANGE: vasp.min?, vasp.max?, vasp.amin?, vasp.amax?, vasp.rmin?, vasp.rmax? no longer return the reference vasp / return a list of vector maxima/minima - CHANGE: inherited several classes from the flext class, so that new and delete use the RT-system functions +- FIX: fixed memory leaks associated to VBuffer retrieval +- FIX: fixed bug on vasp.search for vectors with 0 channels 0.1.2: - FIX: bug in vasp.frames* ... wrong argument diff --git a/externals/grill/vasp/source/main.cpp b/externals/grill/vasp/source/main.cpp index 60352bda..7fb2f0bc 100644 --- a/externals/grill/vasp/source/main.cpp +++ b/externals/grill/vasp/source/main.cpp @@ -12,7 +12,7 @@ WARRANTIES, see the file, "license.txt," in this distribution. #include "classes.h" -const C *VASP_VERSION = "0.1.3pre11"; +const C *VASP_VERSION = "0.1.3pre12"; #include "opfuns.h" diff --git a/externals/grill/vasp/source/obj_imm.cpp b/externals/grill/vasp/source/obj_imm.cpp index ba421ff4..ef75f228 100644 --- a/externals/grill/vasp/source/obj_imm.cpp +++ b/externals/grill/vasp/source/obj_imm.cpp @@ -99,6 +99,8 @@ public: Vasp ret(len,vr); ToOutVasp(0,ret); + + delete buf; } } diff --git a/externals/grill/vasp/source/obj_peaks.cpp b/externals/grill/vasp/source/obj_peaks.cpp index e7d7dd80..c9867150 100644 --- a/externals/grill/vasp/source/obj_peaks.cpp +++ b/externals/grill/vasp/source/obj_peaks.cpp @@ -98,6 +98,8 @@ public: ToOutAnything(1,sym_list,pkfnd,lst); delete[] pos; delete[] lst; + + delete buf; } } diff --git a/externals/grill/vasp/source/obj_q.cpp b/externals/grill/vasp/source/obj_q.cpp index c3f86ca5..e3c01f44 100644 --- a/externals/grill/vasp/source/obj_q.cpp +++ b/externals/grill/vasp/source/obj_q.cpp @@ -51,6 +51,8 @@ public: AtomList lst(cnt); for(I i = 0; i < cnt; ++i,++p) SetFloat(lst[i],*p); ToOutList(0,lst); + + delete buf; } } @@ -110,6 +112,8 @@ public: } ToOutList(0,pos); ToOutList(1,lst); + + delete buf; } } diff --git a/externals/grill/vasp/source/ops_search.cpp b/externals/grill/vasp/source/ops_search.cpp index d805437d..bc7c1345 100644 --- a/externals/grill/vasp/source/ops_search.cpp +++ b/externals/grill/vasp/source/ops_search.cpp @@ -79,12 +79,15 @@ BL VecOp::d_search(OpParam &p) Vasp *VaspOp::m_search(OpParam &p,CVasp &src,const Argument &arg,CVasp *dst,BL st) { Vasp *ret = NULL; - if(src.Vectors() > 1) - post("%s - More than one vector in vasp!",p.opName()); + if(src.Vectors() != 1) + post("%s - Need exactly one vector in vasp!",p.opName()); else if(arg.CanbeFloat() || (arg.IsList() && arg.GetList().Count() >= 1)) { I fr = src.Frames(); I o = src.Vector(0).Offset(); - I sz = src.Buffer(0)->Frames(); + + VBuffer *buf = src.Buffer(0); + I sz = buf->Frames(); + delete buf; CVasp all(src); if(st) { -- cgit v1.2.1