]> git.cworth.org Git - apitrace/commitdiff
Fully segregate Floats from doubles.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 7 May 2011 00:17:49 +0000 (01:17 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Sat, 7 May 2011 00:17:49 +0000 (01:17 +0100)
gui/saverthread.cpp
stdapi.py
trace_model.cpp
trace_model.hpp
trace_write.cpp
trace_write.hpp

index 14f10b8b29ad19f0eaad9026641a317c9c87eb96..b16a7708f561b6b062d47675766eebaf219f7c77 100644 (file)
@@ -137,7 +137,7 @@ writeValue(const QVariant &var, unsigned &id)
     }
         break;
     case QVariant::Double:
-        Trace::LiteralFloat(var.toDouble());
+        Trace::LiteralDouble(var.toDouble());
         break;
     case QMetaType::Float:
         Trace::LiteralFloat(var.toFloat());
index 38f5db506cbbb1f725578a80b81354a56179912e..1dfe20036978351aea15221d3b5a27f419fddbe2 100644 (file)
--- a/stdapi.py
+++ b/stdapi.py
@@ -566,7 +566,7 @@ UInt = Literal("unsigned int", "UInt")
 ULong = Literal("unsigned long", "UInt")
 ULongLong = Literal("unsigned long long", "UInt")
 Float = Literal("float", "Float")
-Double = Literal("double", "Float")
+Double = Literal("double", "Double")
 SizeT = Literal("size_t", "UInt")
 WString = Literal("wchar_t *", "WString")
 
index 21b8a14e2c67fa5f1fcd91428ac9c7421d522709..2821cc557a08a0db770a062b1c8da66d3cfb27c1 100644 (file)
@@ -97,13 +97,23 @@ unsigned long long Enum   ::toUInt(void) const { return sig->second->toUInt(); }
 
 
 // floating point cast
-double Value  ::toFloat(void) const { assert(0); return 0; }
-double Null   ::toFloat(void) const { return 0; }
-double Bool   ::toFloat(void) const { return static_cast<double>(value); }
-double SInt   ::toFloat(void) const { return static_cast<double>(value); }
-double UInt   ::toFloat(void) const { return static_cast<double>(value); }
-double Float  ::toFloat(void) const { return value; }
-double Enum   ::toFloat(void) const { return sig->second->toFloat(); }
+float Value  ::toFloat(void) const { assert(0); return 0; }
+float Null   ::toFloat(void) const { return 0; }
+float Bool   ::toFloat(void) const { return static_cast<float>(value); }
+float SInt   ::toFloat(void) const { return static_cast<float>(value); }
+float UInt   ::toFloat(void) const { return static_cast<float>(value); }
+float Float  ::toFloat(void) const { return value; }
+float Enum   ::toFloat(void) const { return sig->second->toFloat(); }
+
+
+// floating point cast
+double Value  ::toDouble(void) const { assert(0); return 0; }
+double Null   ::toDouble(void) const { return 0; }
+double Bool   ::toDouble(void) const { return static_cast<double>(value); }
+double SInt   ::toDouble(void) const { return static_cast<double>(value); }
+double UInt   ::toDouble(void) const { return static_cast<double>(value); }
+double Float  ::toDouble(void) const { return value; }
+double Enum   ::toDouble(void) const { return sig->second->toDouble(); }
 
 
 // pointer cast
index 324fc2c56c1dd60d97a09415cee21aa20d63fd3c..5e0a09d55319d61c1c22df530d2b0330a157afb5 100644 (file)
@@ -57,7 +57,8 @@ public:
     virtual bool toBool(void) const = 0;
     virtual signed long long toSInt(void) const;
     virtual unsigned long long toUInt(void) const;
-    virtual double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
 
     virtual void *toPointer(void) const;
     virtual unsigned long long toUIntPtr(void) const;
@@ -73,7 +74,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void *toPointer(void) const;
     unsigned long long toUIntPtr(void) const;
     const char *toString(void) const;
@@ -89,7 +91,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void visit(Visitor &visitor);
 
     bool value;
@@ -104,7 +107,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void visit(Visitor &visitor);
 
     signed long long value;
@@ -119,7 +123,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void visit(Visitor &visitor);
 
     unsigned long long value;
@@ -134,7 +139,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void visit(Visitor &visitor);
 
     double value;
@@ -176,7 +182,8 @@ public:
     bool toBool(void) const;
     signed long long toSInt(void) const;
     unsigned long long toUInt(void) const;
-    double toFloat(void) const;
+    virtual float toFloat(void) const;
+    virtual double toDouble(void) const;
     void visit(Visitor &visitor);
 
     const Signature *sig;
@@ -288,11 +295,6 @@ protected:
 std::ostream & operator <<(std::ostream &os, Value *value);
 
 
-signed long long asSInt(const Value &node);
-unsigned long long asUInt(const Value &node);
-double asFloat(const Value &node);
-
-
 class Call
 {
 public:
index 617983aeafe80c7baebc8e9626f8d0d377c692dc..4dfba8adeb0ece46dd1c8849842d84dee60cd278 100644 (file)
@@ -259,7 +259,7 @@ void LiteralFloat(float value) {
     WriteFloat(value);
 }
 
-void LiteralFloat(double value) {
+void LiteralDouble(double value) {
     WriteByte(Trace::TYPE_DOUBLE);
     WriteDouble(value);
 }
index 7ba1154655c0ee5c2368de4e9be752e961cfb705..8797e56f835c667dbd7754d70b8ef96891064e20 100644 (file)
@@ -95,7 +95,7 @@ namespace Trace {
     void LiteralSInt(signed long long value);
     void LiteralUInt(unsigned long long value);
     void LiteralFloat(float value);
-    void LiteralFloat(double value);
+    void LiteralDouble(double value);
     void LiteralString(const char *str);
     void LiteralString(const char *str, size_t size);
     void LiteralWString(const wchar_t *str);