OSDN Git Service

libui: Make Rect constructor 32/64-bit friendly
authorDan Stoza <stoza@google.com>
Fri, 8 Jan 2016 21:22:49 +0000 (13:22 -0800)
committerDan Stoza <stoza@google.com>
Fri, 8 Jan 2016 21:22:49 +0000 (13:22 -0800)
Makes the width/height constructor for the Rect class more flexible
with the types of integers it will accept.

Change-Id: Id88b4e6da2f84d6826e19d1cabd93fe86ad48c8d

include/ui/Rect.h

index 6310502..a8513a9 100644 (file)
@@ -39,13 +39,8 @@ public:
 
     inline Rect() : Rect(INVALID_RECT) {}
 
-    inline Rect(int32_t w, int32_t h) {
-        left = top = 0;
-        right = w;
-        bottom = h;
-    }
-
-    inline Rect(uint32_t w, uint32_t h) {
+    template <typename T>
+    inline Rect(T w, T h) {
         if (w > INT32_MAX) {
             ALOG(LOG_WARN, "Rect",
                     "Width %u too large for Rect class, clamping", w);
@@ -57,8 +52,8 @@ public:
             h = INT32_MAX;
         }
         left = top = 0;
-        right = w;
-        bottom = h;
+        right = static_cast<int32_t>(w);
+        bottom = static_cast<int32_t>(h);
     }
 
     inline Rect(int32_t l, int32_t t, int32_t r, int32_t b) {