Fix memory leaks in operators returning relationals.
authorRichard Kreckel <kreckel@ginac.de>
Mon, 9 Jan 2017 21:49:11 +0000 (22:49 +0100)
committerRichard Kreckel <kreckel@ginac.de>
Mon, 9 Jan 2017 21:49:11 +0000 (22:49 +0100)
These memory leaks were introduced in 82df71852.

Thanks to Thomas Luthe for reporting this.

ginac/operators.cpp

index a6228e8..3ce04eb 100644 (file)
@@ -247,32 +247,32 @@ const numeric operator--(numeric & lh, int)
 
 const relational operator==(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::equal);
+       return relational(lh, rh, relational::equal);
 }
 
 const relational operator!=(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::not_equal);
+       return relational(lh, rh, relational::not_equal);
 }
 
 const relational operator<(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::less);
+       return relational(lh, rh, relational::less);
 }
 
 const relational operator<=(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::less_or_equal);
+       return relational(lh, rh, relational::less_or_equal);
 }
 
 const relational operator>(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::greater);
+       return relational(lh, rh, relational::greater);
 }
 
 const relational operator>=(const ex & lh, const ex & rh)
 {
-       return dynallocate<relational>(lh, rh, relational::greater_or_equal);
+       return relational(lh, rh, relational::greater_or_equal);
 }
 
 // input/output stream operators and manipulators