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

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

Issue 2600753002: Reverts third_party/protobuf: Update to HEAD (f52e188fe4) (Closed)
Patch Set: Created 3 years, 12 months 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. 287 // At this point we have two fully parsed messages. We can't merge directly from one to the
288 setValue(this.value.toBuilder().mergeFrom(other.value).build()); 288 // other because only generated builder code contains methods to mergeFrom a nother parsed
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 }
289 } 310 }
290 311
291 /** 312 /**
292 * Merges another instance's contents from a stream. 313 * Merges another instance's contents from a stream.
293 * 314 *
294 * <p>LazyField is not thread-safe for write access. Synchronizations are need ed 315 * <p>LazyField is not thread-safe for write access. Synchronizations are need ed
295 * under read/write situations. 316 * under read/write situations.
296 */ 317 */
297 public void mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionR egistry) 318 public void mergeFrom(CodedInputStream input, ExtensionRegistryLite extensionR egistry)
298 throws IOException { 319 throws IOException {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 449
429 private static void checkArguments(ExtensionRegistryLite extensionRegistry, By teString bytes) { 450 private static void checkArguments(ExtensionRegistryLite extensionRegistry, By teString bytes) {
430 if (extensionRegistry == null) { 451 if (extensionRegistry == null) {
431 throw new NullPointerException("found null ExtensionRegistry"); 452 throw new NullPointerException("found null ExtensionRegistry");
432 } 453 }
433 if (bytes == null) { 454 if (bytes == null) {
434 throw new NullPointerException("found null ByteString"); 455 throw new NullPointerException("found null ByteString");
435 } 456 }
436 } 457 }
437 } 458 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698