From efa3bafa0ff64c06735fd906d0534330329465c6 Mon Sep 17 00:00:00 2001 From: Richard Kreckel Date: Mon, 12 Apr 2004 01:37:34 +0000 Subject: [PATCH] * Use the pointers to the flyweights, not their references! * Undo previous patch to fix initialization order fiasco. --- ginac/ex.cpp | 152 +++++++++++++++++++++++----------------------- ginac/function.pl | 1 + 2 files changed, 77 insertions(+), 76 deletions(-) diff --git a/ginac/ex.cpp b/ginac/ex.cpp index 28307ad7..4f0da0d6 100644 --- a/ginac/ex.cpp +++ b/ginac/ex.cpp @@ -329,55 +329,55 @@ basic & ex::construct_from_int(int i) { switch (i) { // prefer flyweights over new objects case -12: - return const_cast(_num_12); + return *const_cast(_num_12_p); case -11: - return const_cast(_num_11); + return *const_cast(_num_11_p); case -10: - return const_cast(_num_10); + return *const_cast(_num_10_p); case -9: - return const_cast(_num_9); + return *const_cast(_num_9_p); case -8: - return const_cast(_num_8); + return *const_cast(_num_8_p); case -7: - return const_cast(_num_7); + return *const_cast(_num_7_p); case -6: - return const_cast(_num_6); + return *const_cast(_num_6_p); case -5: - return const_cast(_num_5); + return *const_cast(_num_5_p); case -4: - return const_cast(_num_4); + return *const_cast(_num_4_p); case -3: - return const_cast(_num_3); + return *const_cast(_num_3_p); case -2: - return const_cast(_num_2); + return *const_cast(_num_2_p); case -1: - return const_cast(_num_1); + return *const_cast(_num_1_p); case 0: - return const_cast(_num0); + return *const_cast(_num0_p); case 1: - return const_cast(_num1); + return *const_cast(_num1_p); case 2: - return const_cast(_num2); + return *const_cast(_num2_p); case 3: - return const_cast(_num3); + return *const_cast(_num3_p); case 4: - return const_cast(_num4); + return *const_cast(_num4_p); case 5: - return const_cast(_num5); + return *const_cast(_num5_p); case 6: - return const_cast(_num6); + return *const_cast(_num6_p); case 7: - return const_cast(_num7); + return *const_cast(_num7_p); case 8: - return const_cast(_num8); + return *const_cast(_num8_p); case 9: - return const_cast(_num9); + return *const_cast(_num9_p); case 10: - return const_cast(_num10); + return *const_cast(_num10_p); case 11: - return const_cast(_num11); + return *const_cast(_num11_p); case 12: - return const_cast(_num12); + return *const_cast(_num12_p); default: basic *bp = new numeric(i); bp->setflag(status_flags::dynallocated); @@ -390,31 +390,31 @@ basic & ex::construct_from_uint(unsigned int i) { switch (i) { // prefer flyweights over new objects case 0: - return const_cast(_num0); + return *const_cast(_num0_p); case 1: - return const_cast(_num1); + return *const_cast(_num1_p); case 2: - return const_cast(_num2); + return *const_cast(_num2_p); case 3: - return const_cast(_num3); + return *const_cast(_num3_p); case 4: - return const_cast(_num4); + return *const_cast(_num4_p); case 5: - return const_cast(_num5); + return *const_cast(_num5_p); case 6: - return const_cast(_num6); + return *const_cast(_num6_p); case 7: - return const_cast(_num7); + return *const_cast(_num7_p); case 8: - return const_cast(_num8); + return *const_cast(_num8_p); case 9: - return const_cast(_num9); + return *const_cast(_num9_p); case 10: - return const_cast(_num10); + return *const_cast(_num10_p); case 11: - return const_cast(_num11); + return *const_cast(_num11_p); case 12: - return const_cast(_num12); + return *const_cast(_num12_p); default: basic *bp = new numeric(i); bp->setflag(status_flags::dynallocated); @@ -427,55 +427,55 @@ basic & ex::construct_from_long(long i) { switch (i) { // prefer flyweights over new objects case -12: - return const_cast(_num_12); + return *const_cast(_num_12_p); case -11: - return const_cast(_num_11); + return *const_cast(_num_11_p); case -10: - return const_cast(_num_10); + return *const_cast(_num_10_p); case -9: - return const_cast(_num_9); + return *const_cast(_num_9_p); case -8: - return const_cast(_num_8); + return *const_cast(_num_8_p); case -7: - return const_cast(_num_7); + return *const_cast(_num_7_p); case -6: - return const_cast(_num_6); + return *const_cast(_num_6_p); case -5: - return const_cast(_num_5); + return *const_cast(_num_5_p); case -4: - return const_cast(_num_4); + return *const_cast(_num_4_p); case -3: - return const_cast(_num_3); + return *const_cast(_num_3_p); case -2: - return const_cast(_num_2); + return *const_cast(_num_2_p); case -1: - return const_cast(_num_1); + return *const_cast(_num_1_p); case 0: - return const_cast(_num0); + return *const_cast(_num0_p); case 1: - return const_cast(_num1); + return *const_cast(_num1_p); case 2: - return const_cast(_num2); + return *const_cast(_num2_p); case 3: - return const_cast(_num3); + return *const_cast(_num3_p); case 4: - return const_cast(_num4); + return *const_cast(_num4_p); case 5: - return const_cast(_num5); + return *const_cast(_num5_p); case 6: - return const_cast(_num6); + return *const_cast(_num6_p); case 7: - return const_cast(_num7); + return *const_cast(_num7_p); case 8: - return const_cast(_num8); + return *const_cast(_num8_p); case 9: - return const_cast(_num9); + return *const_cast(_num9_p); case 10: - return const_cast(_num10); + return *const_cast(_num10_p); case 11: - return const_cast(_num11); + return *const_cast(_num11_p); case 12: - return const_cast(_num12); + return *const_cast(_num12_p); default: basic *bp = new numeric(i); bp->setflag(status_flags::dynallocated); @@ -488,31 +488,31 @@ basic & ex::construct_from_ulong(unsigned long i) { switch (i) { // prefer flyweights over new objects case 0: - return const_cast(_num0); + return *const_cast(_num0_p); case 1: - return const_cast(_num1); + return *const_cast(_num1_p); case 2: - return const_cast(_num2); + return *const_cast(_num2_p); case 3: - return const_cast(_num3); + return *const_cast(_num3_p); case 4: - return const_cast(_num4); + return *const_cast(_num4_p); case 5: - return const_cast(_num5); + return *const_cast(_num5_p); case 6: - return const_cast(_num6); + return *const_cast(_num6_p); case 7: - return const_cast(_num7); + return *const_cast(_num7_p); case 8: - return const_cast(_num8); + return *const_cast(_num8_p); case 9: - return const_cast(_num9); + return *const_cast(_num9_p); case 10: - return const_cast(_num10); + return *const_cast(_num10_p); case 11: - return const_cast(_num11); + return *const_cast(_num11_p); case 12: - return const_cast(_num12); + return *const_cast(_num12_p); default: basic *bp = new numeric(i); bp->setflag(status_flags::dynallocated); diff --git a/ginac/function.pl b/ginac/function.pl index 312640fe..6b25c70d 100755 --- a/ginac/function.pl +++ b/ginac/function.pl @@ -557,6 +557,7 @@ void function_options::initialize() print_use_exvector_args = false; use_remember = false; functions_with_same_name = 1; + symtree = 0; } function_options & function_options::set_name(std::string const & n, -- 2.44.0