These unused variables are still being generated by protobuf-2.5.0.  
Attached is a diff that conditionally suppresses their generation.

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at http://groups.google.com/group/protobuf?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


diff -u protobuf-2.5.0/src/google/protobuf/compiler/java/java_message.cc protobuf-2.5.0/src/google/protobuf/compiler/java/java_message.cc.orig
--- protobuf-2.5.0/src/google/protobuf/compiler/java/java_message.cc	2013-03-25 13:24:04.000000000 -0700
+++ protobuf-2.5.0/src/google/protobuf/compiler/java/java_message.cc.orig	2013-02-26 09:56:40.000000000 -0800
@@ -907,22 +907,16 @@
   // code does.
   int totalBuilderBits = 0;
   int totalMessageBits = 0;
-  int numReqOpt		   = 0;
   for (int i = 0; i < descriptor_->field_count(); i++) {
-	const FieldDescriptor* dfield = descriptor_->field(i);
-    const FieldGenerator& field = field_generators_.get(dfield);
+    const FieldGenerator& field = field_generators_.get(descriptor_->field(i));
     totalBuilderBits += field.GetNumBitsForBuilder();
     totalMessageBits += field.GetNumBitsForMessage();
-	if (dfield->is_required() || dfield->is_optional())
-	  numReqOpt++;
   }
+  int totalBuilderInts = (totalBuilderBits + 31) / 32;
   int totalMessageInts = (totalMessageBits + 31) / 32;
-  if (numReqOpt /* != 0 */) {
-	int totalBuilderInts = (totalBuilderBits + 31) / 32;
-	for (int i = 0; i < totalBuilderInts; i++) {
-	  printer->Print("int from_$bit_field_name$ = $bit_field_name$;\n",
-        "bit_field_name", GetBitFieldName(i));
-	}
+  for (int i = 0; i < totalBuilderInts; i++) {
+    printer->Print("int from_$bit_field_name$ = $bit_field_name$;\n",
+      "bit_field_name", GetBitFieldName(i));
   }
   for (int i = 0; i < totalMessageInts; i++) {
     printer->Print("int to_$bit_field_name$ = 0;\n",
@@ -1265,20 +1259,14 @@
 
   // Use builder bits to track mutable repeated fields.
   int totalBuilderBits = 0;
-  int numRepeatedFields = 0;
   for (int i = 0; i < descriptor_->field_count(); i++) {
-    const FieldDescriptor* dfield = descriptor_->field(i);
-    const FieldGenerator& field = field_generators_.get(dfield);
+    const FieldGenerator& field = field_generators_.get(descriptor_->field(i));
     totalBuilderBits += field.GetNumBitsForBuilder();
-    if (dfield->is_repeated())
-      numRepeatedFields++;
   }
-  if (numRepeatedFields /* > 0 */) {
-    int totalBuilderInts = (totalBuilderBits + 31) / 32;
-    for (int i = 0; i < totalBuilderInts; i++) {
-      printer->Print("int mutable_$bit_field_name$ = 0;\n",
-	"bit_field_name", GetBitFieldName(i));
-    }
+  int totalBuilderInts = (totalBuilderBits + 31) / 32;
+  for (int i = 0; i < totalBuilderInts; i++) {
+    printer->Print("int mutable_$bit_field_name$ = 0;\n",
+      "bit_field_name", GetBitFieldName(i));
   }
 
   if (HasUnknownFields(descriptor_)) {

Diff finished.  Mon Apr 29 18:04:51 2013

Reply via email to