Module: sip-router
Branch: master
Commit: 9c3327d5742b1f8280b159c7ea228b95bb2e8f35
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=9c3327d…
Author: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Committer: Andrei Pelinescu-Onciul <andrei(a)iptel.org>
Date: Tue May 5 16:15:01 2009 +0200
core expr: optimizations fixes for $v op 0|1 -> $v
- fix missing cast for the $v <op> c -> $v optimizations
(e.g. $v - 0 -> $v, 1 * $v -> $v): instead of replacing
$v <op> c with $v use (type_of(<op>)) $v. $v without the cast
to the type produced by the operator is used now only when
type_of($v)==type_of(<op>).
E.g.: 1 * $v -> (int)$v
1 * ($v/$w) -> $v/$w ($v/$w produces always an int, so no
need for the cast)
Bug example: 1*"2"+3 was optimized to "2"+3 == "23"
instead of
(int)"2"+3 == 5.
- better debugging messages
---
rvalue.c | 370 +++++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 257 insertions(+), 113 deletions(-)
Diff:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commitdiff;h=9c3…