Loading...
mach_o/Version32.cpp dyld-1340 dyld-1122.1.2
--- dyld/dyld-1340/mach_o/Version32.cpp
+++ dyld/dyld-1122.1.2/mach_o/Version32.cpp
@@ -40,12 +40,11 @@
     uint32_t x = 0;
     uint32_t y = 0;
     uint32_t z = 0;
-    const char* endPtr = versString.data() + versString.size();
-    auto res = std::from_chars(versString.data(), endPtr, x);
+    auto res = std::from_chars(versString.begin(), versString.end(), x);
     if ( res.ec == std::errc{} && *res.ptr == '.' ) {
-        res = std::from_chars(res.ptr + 1, endPtr, y);
+        res = std::from_chars(res.ptr + 1, versString.end(), y);
         if ( res.ec == std::errc{} && *res.ptr == '.' )
-            res = std::from_chars(res.ptr + 1, endPtr, z);
+            res = std::from_chars(res.ptr + 1, versString.end(), z);
     }
     bool valueOverflow = (x > 0xffff) || (y > 0xff) || (z > 0xff);
     if ( valueOverflow && truncationHandler ) {
@@ -55,8 +54,8 @@
         z = std::min(z, 0xFFU);
         valueOverflow = false;
     }
-    if ( res.ptr == nullptr || res.ptr != endPtr || valueOverflow ) {
-        if ( valueOverflow || (truncationHandler == nullptr) || (res.ptr == versString.data()) ) {
+    if ( res.ptr == nullptr || res.ptr != versString.end() || valueOverflow ) {
+        if ( valueOverflow || (truncationHandler == nullptr) || (res.ptr == versString.begin()) ) {
             char errVersString[versString.size() + 1];
             memcpy(errVersString, versString.data(), versString.size());
             errVersString[versString.size()] = 0;