aboutsummaryrefslogtreecommitdiffhomepage
path: root/python/google/protobuf/pyext/descriptor.cc
diff options
context:
space:
mode:
authorGravatar Feng Xiao <xfxyjwf@gmail.com>2014-11-25 15:21:08 -0800
committerGravatar Feng Xiao <xfxyjwf@gmail.com>2014-11-25 15:21:08 -0800
commitd1ec493a12531ca8e9a8a2d3444e77348dca8145 (patch)
treec0e4765821969fe85da8158b82d5992a8ecab817 /python/google/protobuf/pyext/descriptor.cc
parent7d2db50b219b1f1358c12daa0309e657f654469e (diff)
Fix Python C++ implementation build issues:
1. Haven't included the include path for "config.h". 2. Use of C++11 auto keyword.
Diffstat (limited to 'python/google/protobuf/pyext/descriptor.cc')
-rw-r--r--python/google/protobuf/pyext/descriptor.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/python/google/protobuf/pyext/descriptor.cc b/python/google/protobuf/pyext/descriptor.cc
index 55bb0b72..7343c0b7 100644
--- a/python/google/protobuf/pyext/descriptor.cc
+++ b/python/google/protobuf/pyext/descriptor.cc
@@ -247,8 +247,10 @@ PyDescriptorPool* NewDescriptorPool() {
}
static void Dealloc(PyDescriptorPool* self) {
- for (auto it : (*self->classes_by_descriptor)) {
- Py_DECREF(it.second);
+ typedef PyDescriptorPool::ClassesByMessageMap::iterator iterator;
+ for (iterator it = self->classes_by_descriptor->begin();
+ it != self->classes_by_descriptor->end(); ++it) {
+ Py_DECREF(it->second);
}
delete self->classes_by_descriptor;
Py_TYPE(self)->tp_free(reinterpret_cast<PyObject*>(self));
@@ -300,7 +302,8 @@ const google::protobuf::Descriptor* RegisterMessageClass(
return NULL;
}
Py_INCREF(message_class);
- auto ret = self->classes_by_descriptor->insert(
+ typedef PyDescriptorPool::ClassesByMessageMap::iterator iterator;
+ std::pair<iterator, bool> ret = self->classes_by_descriptor->insert(
make_pair(message_descriptor, message_class));
if (!ret.second) {
// Update case: DECREF the previous value.
@@ -323,7 +326,8 @@ const google::protobuf::Descriptor* RegisterMessageClass(
// Retrieve the message class added to our database.
PyObject *GetMessageClass(PyDescriptorPool* self,
const Descriptor *message_descriptor) {
- auto ret = self->classes_by_descriptor->find(message_descriptor);
+ typedef PyDescriptorPool::ClassesByMessageMap::iterator iterator;
+ iterator ret = self->classes_by_descriptor->find(message_descriptor);
if (ret == self->classes_by_descriptor->end()) {
PyErr_Format(PyExc_TypeError, "No message class registered for '%s'",
message_descriptor->full_name().c_str());