David Rose před 21 roky
rodič
revize
9f2b14f261

+ 7 - 7
direct/src/dcparser/dcPacker.cxx

@@ -103,7 +103,7 @@ end_pack() {
 void DCPacker::
 begin_unpack(const string &data, const DCPackerInterface *root) {
   _unpack_str = data;
-  begin_unpack(data.data(), data.length(), root);
+  begin_unpack(_unpack_str.data(), _unpack_str.length(), root);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -207,15 +207,15 @@ push() {
         } else {
           size_t length;
           if (length_bytes == 4) {
-            length = ((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
-                      ((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8) |
-                      ((size_t)(unsigned char)_unpack_data[_unpack_p + 2] << 16) |
-                      ((size_t)(unsigned char)_unpack_data[_unpack_p + 3] << 24));
+            length = (size_t)((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
+                              ((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8) |
+                              ((size_t)(unsigned char)_unpack_data[_unpack_p + 2] << 16) |
+                              ((size_t)(unsigned char)_unpack_data[_unpack_p + 3] << 24));
             _unpack_p += 4;
             _push_marker = _unpack_p + length;
           } else {
-            length = ((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
-                      ((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8));
+            length = (size_t)((size_t)(unsigned char)_unpack_data[_unpack_p + 0] |
+                              ((size_t)(unsigned char)_unpack_data[_unpack_p + 1] << 8));
             _unpack_p += 2;
           }
           _push_marker = _unpack_p + length;

+ 6 - 6
direct/src/dcparser/dcSimpleType.cxx

@@ -990,8 +990,8 @@ unpack_string(const char *data, size_t length, size_t &p, string &value) const {
     if (p + 2 > length) {
       return false;
     }
-    string_length = ((unsigned int)(unsigned char)data[p] |
-                     ((unsigned int)(unsigned char)data[p + 1] << 8));
+    string_length = (size_t)((unsigned int)(unsigned char)data[p] |
+                             ((unsigned int)(unsigned char)data[p + 1] << 8));
     p += 2;
     break;
 
@@ -999,10 +999,10 @@ unpack_string(const char *data, size_t length, size_t &p, string &value) const {
     if (p + 4 > length) {
       return false;
     }
-    string_length = ((unsigned int)(unsigned char)data[p] |
-                     ((unsigned int)(unsigned char)data[p + 1] << 8) |
-                     ((unsigned int)(unsigned char)data[p + 2] << 16) |
-                     ((unsigned int)(unsigned char)data[p + 3] << 24));
+    string_length = (size_t)((unsigned int)(unsigned char)data[p] |
+                             ((unsigned int)(unsigned char)data[p + 1] << 8) |
+                             ((unsigned int)(unsigned char)data[p + 2] << 16) |
+                             ((unsigned int)(unsigned char)data[p + 3] << 24));
     p += 4;
     break;