| OLD | NEW |
| 1 // Protocol Buffers - Google's data interchange format | 1 // Protocol Buffers - Google's data interchange format |
| 2 // Copyright 2008 Google Inc. All rights reserved. | 2 // Copyright 2008 Google Inc. All rights reserved. |
| 3 // https://developers.google.com/protocol-buffers/ | 3 // https://developers.google.com/protocol-buffers/ |
| 4 // | 4 // |
| 5 // Redistribution and use in source and binary forms, with or without | 5 // Redistribution and use in source and binary forms, with or without |
| 6 // modification, are permitted provided that the following conditions are | 6 // modification, are permitted provided that the following conditions are |
| 7 // met: | 7 // met: |
| 8 // | 8 // |
| 9 // * Redistributions of source code must retain the above copyright | 9 // * Redistributions of source code must retain the above copyright |
| 10 // notice, this list of conditions and the following disclaimer. | 10 // notice, this list of conditions and the following disclaimer. |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 GPBCodedInputStreamState *state) { | 212 GPBCodedInputStreamState *state) { |
| 213 int32_t size = ReadRawVarint32(state); | 213 int32_t size = ReadRawVarint32(state); |
| 214 NSString *result; | 214 NSString *result; |
| 215 if (size == 0) { | 215 if (size == 0) { |
| 216 result = @""; | 216 result = @""; |
| 217 } else { | 217 } else { |
| 218 CheckSize(state, size); | 218 CheckSize(state, size); |
| 219 result = [[NSString alloc] initWithBytes:&state->bytes[state->bufferPos] | 219 result = [[NSString alloc] initWithBytes:&state->bytes[state->bufferPos] |
| 220 length:size | 220 length:size |
| 221 encoding:NSUTF8StringEncoding]; | 221 encoding:NSUTF8StringEncoding]; |
| 222 state->bufferPos += size; |
| 222 if (!result) { | 223 if (!result) { |
| 223 result = @""; | |
| 224 #ifdef DEBUG | 224 #ifdef DEBUG |
| 225 // https://developers.google.com/protocol-buffers/docs/proto#scalar | 225 // https://developers.google.com/protocol-buffers/docs/proto#scalar |
| 226 NSLog(@"UTF8 failure, is some field type 'string' when it should be " | 226 NSLog(@"UTF-8 failure, is some field type 'string' when it should be " |
| 227 @"'bytes'?"); | 227 @"'bytes'?"); |
| 228 #endif | 228 #endif |
| 229 [NSException raise:NSParseErrorException |
| 230 format:@"Invalid UTF-8 for a 'string'"]; |
| 229 } | 231 } |
| 230 state->bufferPos += size; | |
| 231 } | 232 } |
| 232 return result; | 233 return result; |
| 233 } | 234 } |
| 234 | 235 |
| 235 NSData *GPBCodedInputStreamReadRetainedBytes(GPBCodedInputStreamState *state) { | 236 NSData *GPBCodedInputStreamReadRetainedBytes(GPBCodedInputStreamState *state) { |
| 236 int32_t size = ReadRawVarint32(state); | 237 int32_t size = ReadRawVarint32(state); |
| 237 if (size < 0) return nil; | 238 if (size < 0) return nil; |
| 238 CheckSize(state, size); | 239 CheckSize(state, size); |
| 239 NSData *result = [[NSData alloc] initWithBytes:state->bytes + state->bufferPos | 240 NSData *result = [[NSData alloc] initWithBytes:state->bytes + state->bufferPos |
| 240 length:size]; | 241 length:size]; |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 | 353 |
| 353 - (void)skipMessage { | 354 - (void)skipMessage { |
| 354 while (YES) { | 355 while (YES) { |
| 355 int32_t tag = GPBCodedInputStreamReadTag(&state_); | 356 int32_t tag = GPBCodedInputStreamReadTag(&state_); |
| 356 if (tag == 0 || ![self skipField:tag]) { | 357 if (tag == 0 || ![self skipField:tag]) { |
| 357 return; | 358 return; |
| 358 } | 359 } |
| 359 } | 360 } |
| 360 } | 361 } |
| 361 | 362 |
| 363 - (BOOL)isAtEnd { |
| 364 return GPBCodedInputStreamIsAtEnd(&state_); |
| 365 } |
| 366 |
| 367 - (size_t)position { |
| 368 return state_.bufferPos; |
| 369 } |
| 370 |
| 362 - (double)readDouble { | 371 - (double)readDouble { |
| 363 return GPBCodedInputStreamReadDouble(&state_); | 372 return GPBCodedInputStreamReadDouble(&state_); |
| 364 } | 373 } |
| 365 | 374 |
| 366 - (float)readFloat { | 375 - (float)readFloat { |
| 367 return GPBCodedInputStreamReadFloat(&state_); | 376 return GPBCodedInputStreamReadFloat(&state_); |
| 368 } | 377 } |
| 369 | 378 |
| 370 - (uint64_t)readUInt64 { | 379 - (uint64_t)readUInt64 { |
| 371 return GPBCodedInputStreamReadUInt64(&state_); | 380 return GPBCodedInputStreamReadUInt64(&state_); |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 | 490 |
| 482 - (int32_t)readSInt32 { | 491 - (int32_t)readSInt32 { |
| 483 return GPBCodedInputStreamReadSInt32(&state_); | 492 return GPBCodedInputStreamReadSInt32(&state_); |
| 484 } | 493 } |
| 485 | 494 |
| 486 - (int64_t)readSInt64 { | 495 - (int64_t)readSInt64 { |
| 487 return GPBCodedInputStreamReadSInt64(&state_); | 496 return GPBCodedInputStreamReadSInt64(&state_); |
| 488 } | 497 } |
| 489 | 498 |
| 490 @end | 499 @end |
| OLD | NEW |