Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(515)

Side by Side Diff: third_party/protobuf/java/core/src/main/java/com/google/protobuf/LazyFieldLite.java

Issue 2495533002: third_party/protobuf: Update to HEAD (83d681ee2c) (Closed)
Patch Set: Make chrome settings proto generated file a component Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 266 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 // in the case that the extension registries are not the same then we might in the future if we 277 // in the case that the extension registries are not the same then we might in the future if we
278 // need to serialze and parse a message again. 278 // need to serialze and parse a message again.
279 if (this.value == null && other.value != null) { 279 if (this.value == null && other.value != null) {
280 setValue(mergeValueAndBytes(other.value, this.delayedBytes, this.extension Registry)); 280 setValue(mergeValueAndBytes(other.value, this.delayedBytes, this.extension Registry));
281 return; 281 return;
282 } else if (this.value != null && other.value == null) { 282 } else if (this.value != null && other.value == null) {
283 setValue(mergeValueAndBytes(this.value, other.delayedBytes, other.extensio nRegistry)); 283 setValue(mergeValueAndBytes(this.value, other.delayedBytes, other.extensio nRegistry));
284 return; 284 return;
285 } 285 }
286 286
287 // At this point we have two fully parsed messages. We can't merge directly from one to the 287 // At this point we have two fully parsed messages.
288 // other because only generated builder code contains methods to mergeFrom a nother parsed 288 setValue(this.value.toBuilder().mergeFrom(other.value).build());
289 // message. We have to serialize one instance and then merge the bytes into the other. This may
290 // drop extensions from one of the messages if one of the values had an exte nsion set on it
291 // directly.
292 //
293 // To mitigate this we prefer serializing a message that has an extension re gistry, and
294 // therefore a chance that all extensions set on it are in that registry.
295 //
296 // NOTE: The check for other.extensionRegistry not being null must come firs t because at this
297 // point in time if other.extensionRegistry is not null then this.extensionR egistry will not be
298 // null either.
299 if (other.extensionRegistry != null) {
300 setValue(mergeValueAndBytes(this.value, other.toByteString(), other.extens ionRegistry));
301 return;
302 } else if (this.extensionRegistry != null) {
303 setValue(mergeValueAndBytes(other.value, this.toByteString(), this.extensi onRegistry));
304 return;
305 } else {
306 // All extensions from the other message will be dropped because we have n o registry.
307 setValue(mergeValueAndBytes(this.value, other.toByteString(), EMPTY_REGIST RY));
308 return;
309 }
310 } 289 }
311 290
312 /** 291 /**
313 * Merges another instance's contents from a stream. 292 * Merges another instance's contents from a stream.
314 * 293 *
315 * <p>LazyField is not thread-safe for write access. Synchronizations are need ed 294 * <p>LazyField is not thread-safe for write access. Synchronizations are need ed
316 * under read/write situations. 295 * under read/write situations.
317 */ 296 */
318 public void mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionR egistry) 297 public void mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionR egistry)
319 throws IOException { 298 throws IOException {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 428
450 private static void checkArguments(ExtensionRegistryLite extensionRegistry, By teString bytes) { 429 private static void checkArguments(ExtensionRegistryLite extensionRegistry, By teString bytes) {
451 if (extensionRegistry == null) { 430 if (extensionRegistry == null) {
452 throw new NullPointerException("found null ExtensionRegistry"); 431 throw new NullPointerException("found null ExtensionRegistry");
453 } 432 }
454 if (bytes == null) { 433 if (bytes == null) {
455 throw new NullPointerException("found null ByteString"); 434 throw new NullPointerException("found null ByteString");
456 } 435 }
457 } 436 }
458 } 437 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698