Unverified Commit 38abec80 authored by Joshua Haberman's avatar Joshua Haberman Committed by GitHub

Merge pull request #5469 from haberman/objc

ObjC compiler changes to allow for easier import
parents e9ea200e 5eb34cd7
...@@ -48,9 +48,9 @@ ...@@ -48,9 +48,9 @@
#include <google/protobuf/io/printer.h> #include <google/protobuf/io/printer.h>
#include <google/protobuf/io/zero_copy_stream_impl.h> #include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/stubs/io_win32.h> #include <google/protobuf/stubs/io_win32.h>
#include <google/protobuf/stubs/port.h>
#include <google/protobuf/stubs/strutil.h> #include <google/protobuf/stubs/strutil.h>
// NOTE: src/google/protobuf/compiler/plugin.cc makes use of cerr for some // NOTE: src/google/protobuf/compiler/plugin.cc makes use of cerr for some
// error cases, so it seems to be ok to use as a back door for errors. // error cases, so it seems to be ok to use as a back door for errors.
...@@ -364,7 +364,7 @@ string StripProto(const string& filename) { ...@@ -364,7 +364,7 @@ string StripProto(const string& filename) {
} }
} }
void StringPieceTrimWhitespace(StringPiece* input) { void TrimWhitespace(StringPiece* input) {
while (!input->empty() && ascii_isspace(*input->data())) { while (!input->empty() && ascii_isspace(*input->data())) {
input->remove_prefix(1); input->remove_prefix(1);
} }
...@@ -659,7 +659,7 @@ string GetCapitalizedType(const FieldDescriptor* field) { ...@@ -659,7 +659,7 @@ string GetCapitalizedType(const FieldDescriptor* field) {
// Some compilers report reaching end of function even though all cases of // Some compilers report reaching end of function even though all cases of
// the enum are handed in the switch. // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here."; GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL; return string();
} }
ObjectiveCType GetObjectiveCType(FieldDescriptor::Type field_type) { ObjectiveCType GetObjectiveCType(FieldDescriptor::Type field_type) {
...@@ -787,7 +787,7 @@ string GPBGenericValueFieldName(const FieldDescriptor* field) { ...@@ -787,7 +787,7 @@ string GPBGenericValueFieldName(const FieldDescriptor* field) {
// Some compilers report reaching end of function even though all cases of // Some compilers report reaching end of function even though all cases of
// the enum are handed in the switch. // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here."; GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL; return string();
} }
...@@ -859,7 +859,7 @@ string DefaultValue(const FieldDescriptor* field) { ...@@ -859,7 +859,7 @@ string DefaultValue(const FieldDescriptor* field) {
// Some compilers report reaching end of function even though all cases of // Some compilers report reaching end of function even though all cases of
// the enum are handed in the switch. // the enum are handed in the switch.
GOOGLE_LOG(FATAL) << "Can't get here."; GOOGLE_LOG(FATAL) << "Can't get here.";
return NULL; return string();
} }
bool HasNonZeroDefaultValue(const FieldDescriptor* field) { bool HasNonZeroDefaultValue(const FieldDescriptor* field) {
...@@ -1047,18 +1047,17 @@ bool ExpectedPrefixesCollector::ConsumeLine( ...@@ -1047,18 +1047,17 @@ bool ExpectedPrefixesCollector::ConsumeLine(
const StringPiece& line, string* out_error) { const StringPiece& line, string* out_error) {
int offset = line.find('='); int offset = line.find('=');
if (offset == StringPiece::npos) { if (offset == StringPiece::npos) {
*out_error = *out_error = string("Expected prefixes file line without equal sign: '") +
string("Expected prefixes file line without equal sign: '") + string(line) + "'.";
line.ToString() + "'.";
return false; return false;
} }
StringPiece package(line, 0, offset); StringPiece package = line.substr(0, offset);
StringPiece prefix(line, offset + 1, line.length() - offset - 1); StringPiece prefix = line.substr(offset + 1);
StringPieceTrimWhitespace(&package); TrimWhitespace(&package);
StringPieceTrimWhitespace(&prefix); TrimWhitespace(&prefix);
// Don't really worry about error checking the package/prefix for // Don't really worry about error checking the package/prefix for
// being valid. Assume the file is validated when it is created/edited. // being valid. Assume the file is validated when it is created/edited.
(*prefix_map_)[package.ToString()] = prefix.ToString(); (*prefix_map_)[string(package)] = string(prefix);
return true; return true;
} }
...@@ -1474,7 +1473,7 @@ class Parser { ...@@ -1474,7 +1473,7 @@ class Parser {
bool Parser::ParseChunk(StringPiece chunk) { bool Parser::ParseChunk(StringPiece chunk) {
if (!leftover_.empty()) { if (!leftover_.empty()) {
chunk.AppendToString(&leftover_); leftover_ += string(chunk);
p_ = StringPiece(leftover_); p_ = StringPiece(leftover_);
} else { } else {
p_ = chunk; p_ = chunk;
...@@ -1483,7 +1482,7 @@ bool Parser::ParseChunk(StringPiece chunk) { ...@@ -1483,7 +1482,7 @@ bool Parser::ParseChunk(StringPiece chunk) {
if (p_.empty()) { if (p_.empty()) {
leftover_.clear(); leftover_.clear();
} else { } else {
leftover_ = p_.ToString(); leftover_ = string(p_);
} }
return result; return result;
} }
...@@ -1506,7 +1505,7 @@ bool Parser::ParseLoop() { ...@@ -1506,7 +1505,7 @@ bool Parser::ParseLoop() {
while (ReadLine(&p_, &line)) { while (ReadLine(&p_, &line)) {
++line_; ++line_;
RemoveComment(&line); RemoveComment(&line);
StringPieceTrimWhitespace(&line); TrimWhitespace(&line);
if (line.size() == 0) { if (line.size() == 0) {
continue; // Blank line. continue; // Blank line.
} }
...@@ -1693,12 +1692,12 @@ bool ImportWriter::ProtoFrameworkCollector::ConsumeLine( ...@@ -1693,12 +1692,12 @@ bool ImportWriter::ProtoFrameworkCollector::ConsumeLine(
if (offset == StringPiece::npos) { if (offset == StringPiece::npos) {
*out_error = *out_error =
string("Framework/proto file mapping line without colon sign: '") + string("Framework/proto file mapping line without colon sign: '") +
line.ToString() + "'."; string(line) + "'.";
return false; return false;
} }
StringPiece framework_name(line, 0, offset); StringPiece framework_name = line.substr(0, offset);
StringPiece proto_file_list(line, offset + 1, line.length() - offset - 1); StringPiece proto_file_list = line.substr(offset + 1);
StringPieceTrimWhitespace(&framework_name); TrimWhitespace(&framework_name);
int start = 0; int start = 0;
while (start < proto_file_list.length()) { while (start < proto_file_list.length()) {
...@@ -1707,25 +1706,27 @@ bool ImportWriter::ProtoFrameworkCollector::ConsumeLine( ...@@ -1707,25 +1706,27 @@ bool ImportWriter::ProtoFrameworkCollector::ConsumeLine(
offset = proto_file_list.length(); offset = proto_file_list.length();
} }
StringPiece proto_file(proto_file_list, start, offset - start); StringPiece proto_file = proto_file_list.substr(start, offset - start);
StringPieceTrimWhitespace(&proto_file); TrimWhitespace(&proto_file);
if (proto_file.size() != 0) { if (proto_file.size() != 0) {
std::map<string, string>::iterator existing_entry = std::map<string, string>::iterator existing_entry =
map_->find(proto_file.ToString()); map_->find(string(proto_file));
if (existing_entry != map_->end()) { if (existing_entry != map_->end()) {
std::cerr << "warning: duplicate proto file reference, replacing framework entry for '" std::cerr << "warning: duplicate proto file reference, replacing "
<< proto_file.ToString() << "' with '" << framework_name.ToString() "framework entry for '"
<< "' (was '" << existing_entry->second << "')." << std::endl; << string(proto_file) << "' with '" << string(framework_name)
<< "' (was '" << existing_entry->second << "')." << std::endl;
std::cerr.flush(); std::cerr.flush();
} }
if (proto_file.find(' ') != StringPiece::npos) { if (proto_file.find(' ') != StringPiece::npos) {
std::cerr << "note: framework mapping file had a proto file with a space in, hopefully that isn't a missing comma: '" std::cerr << "note: framework mapping file had a proto file with a "
<< proto_file.ToString() << "'" << std::endl; "space in, hopefully that isn't a missing comma: '"
<< string(proto_file) << "'" << std::endl;
std::cerr.flush(); std::cerr.flush();
} }
(*map_)[proto_file.ToString()] = framework_name.ToString(); (*map_)[string(proto_file)] = string(framework_name);
} }
start = offset + 1; start = offset + 1;
......
...@@ -62,7 +62,7 @@ string PROTOC_EXPORT EscapeTrigraphs(const string& to_escape); ...@@ -62,7 +62,7 @@ string PROTOC_EXPORT EscapeTrigraphs(const string& to_escape);
string PROTOC_EXPORT StripProto(const string& filename); string PROTOC_EXPORT StripProto(const string& filename);
// Remove white space from either end of a StringPiece. // Remove white space from either end of a StringPiece.
void PROTOC_EXPORT StringPieceTrimWhitespace(StringPiece* input); void PROTOC_EXPORT TrimWhitespace(StringPiece* input);
// Returns true if the name requires a ns_returns_not_retained attribute applied // Returns true if the name requires a ns_returns_not_retained attribute applied
// to it. // to it.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment