static inline size_t
 __glArrayPointer_size(GLint size, GLenum type, GLsizei stride, GLsizei maxIndex)
 {
-    GLsizei elementSize = size*__gl_type_size(type);
+    size_t elementSize = size*__gl_type_size(type);
     if (!stride) {
-        stride = elementSize;
+        stride = (GLsizei)elementSize;
     }
     return stride*maxIndex + elementSize;
 }
 
         size_t size = read_uint();
         Blob *blob = new Blob(size);
         if (size) {
-            gzread(file, blob->buf, size);
+            gzread(file, blob->buf, (unsigned)size);
         }
         return blob;
     }
             return std::string();
         }
         char * buf = new char[len];
-        gzread(file, buf, len);
+        gzread(file, buf, (unsigned)len);
         std::string value(buf, len);
         delete [] buf;
 #if TRACE_VERBOSE