aboutsummaryrefslogtreecommitdiff
path: root/src/google
diff options
context:
space:
mode:
authorkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2010-09-17 23:20:04 +0000
committerkenton@google.com <kenton@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2010-09-17 23:20:04 +0000
commita4a9ef8c8b9ecf1a1f2dd71a608032db45aad1ea (patch)
treeb8cdbb1c0bee68f909a1c47cdec46f25e584f979 /src/google
parentb541e3c9665dd0d73f0a5f8995822a2b611b15a3 (diff)
downloadprotobuf-a4a9ef8c8b9ecf1a1f2dd71a608032db45aad1ea.tar.gz
protobuf-a4a9ef8c8b9ecf1a1f2dd71a608032db45aad1ea.tar.bz2
protobuf-a4a9ef8c8b9ecf1a1f2dd71a608032db45aad1ea.zip
Roll back revision 313. A similar but far more exensive change was made in our internal branch, which will be integrated soon.
Diffstat (limited to 'src/google')
-rw-r--r--src/google/protobuf/compiler/java/java_primitive_field.cc58
-rw-r--r--src/google/protobuf/compiler/java/java_primitive_field.h2
2 files changed, 9 insertions, 51 deletions
diff --git a/src/google/protobuf/compiler/java/java_primitive_field.cc b/src/google/protobuf/compiler/java/java_primitive_field.cc
index d0fd081f..f6179bfa 100644
--- a/src/google/protobuf/compiler/java/java_primitive_field.cc
+++ b/src/google/protobuf/compiler/java/java_primitive_field.cc
@@ -199,14 +199,6 @@ GenerateMembers(io::Printer* printer) const {
"private $type$ $name$_ = $default$;\n"
"public boolean has$capitalized_name$() { return has$capitalized_name$; }\n"
"public $type$ get$capitalized_name$() { return $name$_; }\n");
- // Avoid double encoding for Java strings
- // This field does not need to be volatile because ByteString is immutable.
- // http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#finalRight
- // However, it seems better to be safe than sorry.
- if (ShouldUseStringEncodingCache()) {
- printer->Print(variables_,
- "private volatile com.google.protobuf.ByteString $name$EncodedCache_;\n");
- }
}
void PrimitiveFieldGenerator::
@@ -267,57 +259,25 @@ GenerateParsingCode(io::Printer* printer) const {
void PrimitiveFieldGenerator::
GenerateSerializationCode(io::Printer* printer) const {
- if (ShouldUseStringEncodingCache()) {
- // Pass the cached serialized version, then forget it.
- // The cached version could be null if we didn't compute the size first,
- // or if there are two threads attempting to serialize simultaneously.
- // CodedOutputStream.writeStringCached handles this for us.
- printer->Print(variables_,
- "if (has$capitalized_name$()) {\n"
- " output.write$capitalized_type$Cached($number$,\n"
- " get$capitalized_name$(),\n"
- " $name$EncodedCache_);\n"
- " $name$EncodedCache_ = null;\n"
- "}\n");
- } else {
- printer->Print(variables_,
- "if (has$capitalized_name$()) {\n"
- " output.write$capitalized_type$($number$, get$capitalized_name$());\n"
- "}\n");
- }
+ printer->Print(variables_,
+ "if (has$capitalized_name$()) {\n"
+ " output.write$capitalized_type$($number$, get$capitalized_name$());\n"
+ "}\n");
}
void PrimitiveFieldGenerator::
GenerateSerializedSizeCode(io::Printer* printer) const {
- // Avoid double encoding for strings: serialize the string here
- if (ShouldUseStringEncodingCache()) {
- printer->Print(variables_,
- "if (has$capitalized_name$()) {\n"
- " com.google.protobuf.ByteString serialized = \n"
- " com.google.protobuf.ByteString.copyFromUtf8(\n"
- " get$capitalized_name$());\n"
- " $name$EncodedCache_ = serialized;\n"
- " size += com.google.protobuf.CodedOutputStream\n"
- " .computeBytesSize($number$, serialized);\n"
- "}\n");
- } else {
- printer->Print(variables_,
- "if (has$capitalized_name$()) {\n"
- " size += com.google.protobuf.CodedOutputStream\n"
- " .compute$capitalized_type$Size($number$, get$capitalized_name$());\n"
- "}\n");
- }
+ printer->Print(variables_,
+ "if (has$capitalized_name$()) {\n"
+ " size += com.google.protobuf.CodedOutputStream\n"
+ " .compute$capitalized_type$Size($number$, get$capitalized_name$());\n"
+ "}\n");
}
string PrimitiveFieldGenerator::GetBoxedType() const {
return BoxedPrimitiveTypeName(GetJavaType(descriptor_));
}
-bool PrimitiveFieldGenerator::ShouldUseStringEncodingCache() const {
- return GetType(descriptor_) == FieldDescriptor::TYPE_STRING &&
- descriptor_->file()->options().optimize_for() == FileOptions::SPEED;
-}
-
// ===================================================================
RepeatedPrimitiveFieldGenerator::
diff --git a/src/google/protobuf/compiler/java/java_primitive_field.h b/src/google/protobuf/compiler/java/java_primitive_field.h
index 9d6c3d5f..4e482a05 100644
--- a/src/google/protobuf/compiler/java/java_primitive_field.h
+++ b/src/google/protobuf/compiler/java/java_primitive_field.h
@@ -62,8 +62,6 @@ class PrimitiveFieldGenerator : public FieldGenerator {
string GetBoxedType() const;
private:
- bool ShouldUseStringEncodingCache() const;
-
const FieldDescriptor* descriptor_;
map<string, string> variables_;