trafficserver-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yun...@apache.org
Subject git commit: TS-2174: Fix StatBinaryEval() on div operation
Date Tue, 03 Sep 2013 18:32:12 GMT
Updated Branches:
  refs/heads/master 8d95ab2f0 -> 04e16af6d


TS-2174: Fix StatBinaryEval() on div operation

We should fore the type of result to be RecFloat on div operation,
otherwise we can't get the fraction when dividing two RecInt.

Signed-off-by: Yunkai Zhang <qiushu.zyk@taobao.com>


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/04e16af6
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/04e16af6
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/04e16af6

Branch: refs/heads/master
Commit: 04e16af6dacb697ddcc373b046a7a412786caddc
Parents: 8d95ab2
Author: Yunkai Zhang <qiushu.zyk@taobao.com>
Authored: Wed Sep 4 00:57:07 2013 +0800
Committer: Yunkai Zhang <qiushu.zyk@taobao.com>
Committed: Wed Sep 4 02:29:06 2013 +0800

----------------------------------------------------------------------
 mgmt/stats/StatType.cc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/04e16af6/mgmt/stats/StatType.cc
----------------------------------------------------------------------
diff --git a/mgmt/stats/StatType.cc b/mgmt/stats/StatType.cc
index 0017e5d..3e13d78 100644
--- a/mgmt/stats/StatType.cc
+++ b/mgmt/stats/StatType.cc
@@ -947,6 +947,22 @@ StatExprToken *StatObject::StatBinaryEval(StatExprToken * left, char
op,
   case '/':
     RecData recTmp;
     RecDataClear(RECD_NULL, &recTmp);
+
+    /*
+     * Force the type of result to be RecFloat on div operation
+     */
+    if (result->m_token_type != RECD_FLOAT && result->m_token_type != RECD_CONST)
{
+      RecFloat t;
+
+      result->m_token_type = RECD_FLOAT;
+
+      t = (RecFloat)l.rec_int;
+      l.rec_float = t;
+
+      t = (RecFloat)r.rec_int;
+      r.rec_float = t;
+    }
+
     if (RecDataCmp(result->m_token_type, r, recTmp)) {
       result->m_token_value = RecDataDiv(result->m_token_type, l, r);
     }


Mime
View raw message