X-Git-Url: https://www.ginac.de/ginac.git//ginac.git?p=ginac.git;a=blobdiff_plain;f=ginac%2Fparser%2Fparse_binop_rhs.cpp;fp=ginac%2Fparser%2Fparse_binop_rhs.cpp;h=aad3a712cba598a4b98e3d2aba7ecde041bb644f;hp=b506ad81e9b1282c90975a133a81673daafbacc9;hb=65f2693a0948d1db0bc68d7656c64e1fed91c158;hpb=00d612ce3789ba9240ade1b8bf06b26c326bd8f2 diff --git a/ginac/parser/parse_binop_rhs.cpp b/ginac/parser/parse_binop_rhs.cpp index b506ad81..aad3a712 100644 --- a/ginac/parser/parse_binop_rhs.cpp +++ b/ginac/parser/parse_binop_rhs.cpp @@ -121,9 +121,9 @@ static ex make_minus_expr(const exvector& args) exvector rest_args; rest_args.reserve(args.size() - 1); std::copy(args.begin() + 1, args.end(), std::back_inserter(rest_args)); - ex rest_base = (new add(rest_args))->setflag(status_flags::dynallocated); - ex rest = (new mul(rest_base, *_num_1_p))->setflag(status_flags::dynallocated); - ex ret = (new add(args[0], rest))->setflag(status_flags::dynallocated); + ex rest_base = dynallocate(rest_args); + ex rest = dynallocate(rest_base, *_num_1_p); + ex ret = dynallocate(args[0], rest); return ret; } @@ -132,20 +132,20 @@ static ex make_divide_expr(const exvector& args) exvector rest_args; rest_args.reserve(args.size() - 1); std::copy(args.begin() + 1, args.end(), std::back_inserter(rest_args)); - ex rest_base = (new mul(rest_args))->setflag(status_flags::dynallocated); + ex rest_base = dynallocate(rest_args); ex rest = pow(rest_base, *_num_1_p); - return (new mul(args[0], rest))->setflag(status_flags::dynallocated); + return dynallocate(args[0], rest); } static ex make_binop_expr(const int binop, const exvector& args) { switch (binop) { case '+': - return (new add(args))->setflag(status_flags::dynallocated); + return dynallocate(args); case '-': return make_minus_expr(args); case '*': - return (new mul(args))->setflag(status_flags::dynallocated); + return dynallocate(args); case '/': return make_divide_expr(args); case '^':