aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Xiao <xfxyjwf@gmail.com>2014-12-02 15:45:45 -0800
committerFeng Xiao <xfxyjwf@gmail.com>2014-12-02 15:45:45 -0800
commit9e9ca4b60ab4b3b032b9f1abba9b4e9698639dfd (patch)
tree9a79a0ea2ae26a1b6a6fa4e99e93048815525484
parente559b51b8de7d1d2ca35575b10176340fcc7bb82 (diff)
parentd1ec493a12531ca8e9a8a2d3444e77348dca8145 (diff)
downloadprotobuf-9e9ca4b60ab4b3b032b9f1abba9b4e9698639dfd.tar.gz
protobuf-9e9ca4b60ab4b3b032b9f1abba9b4e9698639dfd.tar.bz2
protobuf-9e9ca4b60ab4b3b032b9f1abba9b4e9698639dfd.zip
Merge pull request #105 from xfxyjwf/fix_92
Fix Python C++ implementation build issues
-rw-r--r--python/google/protobuf/pyext/descriptor.cc12
-rwxr-xr-xpython/setup.py2
2 files changed, 9 insertions, 5 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());
diff --git a/python/setup.py b/python/setup.py
index 7337260a..69ffcd1d 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -157,7 +157,7 @@ if __name__ == '__main__':
"google/protobuf/pyext/repeated_scalar_container.cc",
"google/protobuf/pyext/repeated_composite_container.cc" ],
define_macros=[('GOOGLE_PROTOBUF_HAS_ONEOF', '1')],
- include_dirs = [ ".", "../src"],
+ include_dirs = [ ".", "..", "../src"],
libraries = [ "protobuf" ],
library_dirs = [ '../src/.libs' ],
))