Explorar o código

Fix ruby conformance test on mac

Bo Yang %!s(int64=6) %!d(string=hai) anos
pai
achega
262cc06075
Modificáronse 1 ficheiros con 3 adicións e 4 borrados
  1. 3 4
      ruby/ext/google/protobuf_c/upb.c

+ 3 - 4
ruby/ext/google/protobuf_c/upb.c

@@ -14302,7 +14302,7 @@ static void start_timestamp_zone(upb_json_parser *p, const char *ptr) {
 static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) {
   size_t len;
   const char *buf;
-  int hours;
+  int hours = 0;
   int64_t seconds;
   const char *seconds_membername = "seconds";
 
@@ -14322,12 +14322,11 @@ static bool end_timestamp_zone(upb_json_parser *p, const char *ptr) {
     if (buf[0] == '+') {
       hours = -hours;
     }
-
-    p->tm.tm_hour += hours;
   }
 
   /* Normalize tm */
-  seconds = mktime(&p->tm);
+  seconds = timegm(&p->tm);
+  seconds += 3600 * hours;
 
   /* Check timestamp boundary */
   if (seconds < -62135596800) {