[Pkg-octave-commit] [SCM] octave-symbolic branch, master, updated. a718b53403d9f164f8c2a3df521385a01d28a11b

goffioul goffioul at 416fae20-06d0-4450-9b69-c6c34d4b5f03
Mon Jan 3 03:40:50 UTC 2011


The following commit has been merged in the master branch:
commit 883b4817b53cb77a67fecb307bf6eb377b85a572
Author: goffioul <goffioul at 416fae20-06d0-4450-9b69-c6c34d4b5f03>
Date:   Tue Feb 6 07:02:26 2007 +0000

    Fix problem with STL iterator going past the end of a container
    
    
    git-svn-id: https://octave.svn.sourceforge.net/svnroot/octave/trunk/octave-forge/main/symbolic@3232 416fae20-06d0-4450-9b69-c6c34d4b5f03

diff --git a/src/ov-ex.cc b/src/ov-ex.cc
index b4a4d07..39a7668 100644
--- a/src/ov-ex.cc
+++ b/src/ov-ex.cc
@@ -114,12 +114,15 @@ octave_ex::~octave_ex()
 	if((GiNaC::is_a<GiNaC::symbol>(x)) && (!symbol_list.empty())) {
 		GiNaC::symbol sym = GiNaC::ex_to<GiNaC::symbol>(x);
 		std::vector<symbol_list_item>::iterator iter_symlist;
-		for(iter_symlist=symbol_list.begin();iter_symlist<symbol_list.end();iter_symlist++) {
+		for(iter_symlist=symbol_list.begin();iter_symlist<symbol_list.end();) {
 		  if(GiNaC::operator == (sym, iter_symlist->sym)) {
 				iter_symlist->refcount --;
-				if(iter_symlist->refcount==0)
-					symbol_list.erase(iter_symlist);
+				if(iter_symlist->refcount==0) {
+					iter_symlist = symbol_list.erase(iter_symlist);
+					continue;
+				}
 			}
+		  iter_symlist++;
 		}
 	}
 }

-- 
octave-symbolic



More information about the Pkg-octave-commit mailing list