aspell-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[aspell-devel] Bug in vector.hpp


From: Peter Kümmel
Subject: [aspell-devel] Bug in vector.hpp
Date: Wed, 30 Aug 2006 19:49:48 +0200
User-agent: Thunderbird 1.5.0.5 (Windows/20060719)

std::vector::end() returns an iterator that
points just beyond the end of the vector.

So &*thin->end() is no valid code, because
it is a out of bound access.

std::vector::back() returns a reference to
the last element and a pointer to the last
element is: &back().

See attached patch.

Peter
Index: common/vector.hpp
===================================================================
RCS file: /sources/aspell/aspell/common/vector.hpp,v
retrieving revision 1.15
diff -u -b -B -r1.15 vector.hpp
--- common/vector.hpp   3 May 2005 05:08:19 -0000       1.15
+++ common/vector.hpp   30 Aug 2006 17:30:10 -0000
@@ -47,13 +47,13 @@
     }
     T * data() {return &*this->begin();}
     T * data(int pos) {return &*this->begin() + pos;}
-    T * data_end() {return &*this->end();}
+    T * data_end() {return &this->back();}
 
     T * pbegin() {return &*this->begin();}
-    T * pend()   {return &*this->end();}
+    T * pend()   {return &this->back();}
 
     const T * pbegin() const {return &*this->begin();}
-    const T * pend()   const {return &*this->end();}
+    const T * pend()   const {return &this->back();}
 
     template <typename U>
     U * datap() { 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]