[GiNaC-devel] [PATCH 5/6] ncmul::eval(): don't write beyond the end of the vector.
Alexei Sheplyakov
varg at metalica.kh.ua
Sat Aug 8 12:03:38 CEST 2009
---
ginac/ncmul.cpp | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/ginac/ncmul.cpp b/ginac/ncmul.cpp
index 0c22a81..fff307d 100644
--- a/ginac/ncmul.cpp
+++ b/ginac/ncmul.cpp
@@ -339,15 +339,15 @@ ex ncmul::eval(int level) const
if (assocseq.empty()) return _ex1;
// determine return types
- unsignedvector rettypes;
- rettypes.reserve(assocseq.size());
+ unsignedvector rettypes(assocseq.size());
size_t i = 0;
size_t count_commutative=0;
size_t count_noncommutative=0;
size_t count_noncommutative_composite=0;
cit = assocseq.begin(); citend = assocseq.end();
while (cit != citend) {
- switch (rettypes[i] = cit->return_type()) {
+ rettypes[i] = cit->return_type();
+ switch (rettypes[i]) {
case return_types::commutative:
count_commutative++;
break;
--
1.6.3.3
More information about the GiNaC-devel
mailing list