Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Unified Diff: third_party/protobuf/python/google/protobuf/pyext/map_container.cc

Issue 2590803003: Revert "third_party/protobuf: Update to HEAD (83d681ee2c)" (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/protobuf/python/google/protobuf/pyext/map_container.cc
diff --git a/third_party/protobuf/python/google/protobuf/pyext/map_container.cc b/third_party/protobuf/python/google/protobuf/pyext/map_container.cc
index 088ddf93536ac75e76d78c0412bb2344ac75cdea..e022406d11f0400a12b01f1072773c4cf3813f03 100644
--- a/third_party/protobuf/python/google/protobuf/pyext/map_container.cc
+++ b/third_party/protobuf/python/google/protobuf/pyext/map_container.cc
@@ -39,12 +39,11 @@
#include <google/protobuf/stubs/logging.h>
#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/scoped_ptr.h>
#include <google/protobuf/map_field.h>
#include <google/protobuf/map.h>
#include <google/protobuf/message.h>
-#include <google/protobuf/pyext/message_factory.h>
#include <google/protobuf/pyext/message.h>
-#include <google/protobuf/pyext/repeated_composite_container.h>
#include <google/protobuf/pyext/scoped_pyobject_ptr.h>
#if PY_MAJOR_VERSION >= 3
@@ -330,15 +329,6 @@ PyObject* Clear(PyObject* _self) {
Py_RETURN_NONE;
}
-PyObject* GetEntryClass(PyObject* _self) {
- MapContainer* self = GetMap(_self);
- CMessageClass* message_class = message_factory::GetMessageClass(
- cmessage::GetFactoryForMessage(self->parent),
- self->parent_field_descriptor->message_type());
- Py_XINCREF(message_class);
- return reinterpret_cast<PyObject*>(message_class);
-}
-
PyObject* MapReflectionFriend::Contains(PyObject* _self, PyObject* key) {
MapContainer* self = GetMap(_self);
@@ -359,10 +349,9 @@ PyObject* MapReflectionFriend::Contains(PyObject* _self, PyObject* key) {
}
// Initializes the underlying Message object of "to" so it becomes a new parent
-// map container, and copies all the values from "from" to it. A child map
+// repeated scalar, and copies all the values from "from" to it. A child scalar
// container can be released by passing it as both from and to (e.g. making it
// the recipient of the new parent message and copying the values from itself).
-// In fact, this is the only supported use at the moment.
static int InitializeAndCopyToParentContainer(MapContainer* from,
MapContainer* to) {
// For now we require from == to, re-evaluate if we want to support deep copy
@@ -374,7 +363,7 @@ static int InitializeAndCopyToParentContainer(MapContainer* from,
// A somewhat roundabout way of copying just one field from old_message to
// new_message. This is the best we can do with what Reflection gives us.
Message* mutable_old = from->GetMutableMessage();
- std::vector<const FieldDescriptor*> fields;
+ vector<const FieldDescriptor*> fields;
fields.push_back(from->parent_field_descriptor);
// Move the map field into the new message.
@@ -411,7 +400,12 @@ PyObject *NewScalarMapContainer(
return NULL;
}
- ScopedPyObjectPtr obj(PyType_GenericAlloc(ScalarMapContainer_Type, 0));
+#if PY_MAJOR_VERSION >= 3
+ ScopedPyObjectPtr obj(PyType_GenericAlloc(
+ reinterpret_cast<PyTypeObject *>(ScalarMapContainer_Type), 0));
+#else
+ ScopedPyObjectPtr obj(PyType_GenericAlloc(&ScalarMapContainer_Type, 0));
+#endif
if (obj.get() == NULL) {
return PyErr_Format(PyExc_RuntimeError,
"Could not allocate new container.");
@@ -533,8 +527,6 @@ static PyMethodDef ScalarMapMethods[] = {
"Removes all elements from the map." },
{ "get", ScalarMapGet, METH_VARARGS,
"Gets the value for the given key if present, or otherwise a default" },
- { "GetEntryClass", (PyCFunction)GetEntryClass, METH_NOARGS,
- "Return the class used to build Entries of (key, value) pairs." },
/*
{ "__deepcopy__", (PyCFunction)DeepCopy, METH_VARARGS,
"Makes a deep copy of the class." },
@@ -544,7 +536,6 @@ static PyMethodDef ScalarMapMethods[] = {
{NULL, NULL},
};
-PyTypeObject *ScalarMapContainer_Type;
#if PY_MAJOR_VERSION >= 3
static PyType_Slot ScalarMapContainer_Type_slots[] = {
{Py_tp_dealloc, (void *)ScalarMapDealloc},
@@ -563,6 +554,7 @@ PyTypeObject *ScalarMapContainer_Type;
Py_TPFLAGS_DEFAULT,
ScalarMapContainer_Type_slots
};
+ PyObject *ScalarMapContainer_Type;
#else
static PyMappingMethods ScalarMapMappingMethods = {
MapReflectionFriend::Length, // mp_length
@@ -570,7 +562,7 @@ PyTypeObject *ScalarMapContainer_Type;
MapReflectionFriend::ScalarMapSetItem, // mp_ass_subscript
};
- PyTypeObject _ScalarMapContainer_Type = {
+ PyTypeObject ScalarMapContainer_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
FULL_MODULE_NAME ".ScalarMapContainer", // tp_name
sizeof(MapContainer), // tp_basicsize
@@ -651,7 +643,12 @@ PyObject* NewMessageMapContainer(
return NULL;
}
- PyObject* obj = PyType_GenericAlloc(MessageMapContainer_Type, 0);
+#if PY_MAJOR_VERSION >= 3
+ PyObject* obj = PyType_GenericAlloc(
+ reinterpret_cast<PyTypeObject *>(MessageMapContainer_Type), 0);
+#else
+ PyObject* obj = PyType_GenericAlloc(&MessageMapContainer_Type, 0);
+#endif
if (obj == NULL) {
return PyErr_Format(PyExc_RuntimeError,
"Could not allocate new container.");
@@ -783,8 +780,6 @@ static PyMethodDef MessageMapMethods[] = {
"Gets the value for the given key if present, or otherwise a default" },
{ "get_or_create", MapReflectionFriend::MessageMapGetItem, METH_O,
"Alias for getitem, useful to make explicit that the map is mutated." },
- { "GetEntryClass", (PyCFunction)GetEntryClass, METH_NOARGS,
- "Return the class used to build Entries of (key, value) pairs." },
/*
{ "__deepcopy__", (PyCFunction)DeepCopy, METH_VARARGS,
"Makes a deep copy of the class." },
@@ -794,7 +789,6 @@ static PyMethodDef MessageMapMethods[] = {
{NULL, NULL},
};
-PyTypeObject *MessageMapContainer_Type;
#if PY_MAJOR_VERSION >= 3
static PyType_Slot MessageMapContainer_Type_slots[] = {
{Py_tp_dealloc, (void *)MessageMapDealloc},
@@ -813,6 +807,8 @@ PyTypeObject *MessageMapContainer_Type;
Py_TPFLAGS_DEFAULT,
MessageMapContainer_Type_slots
};
+
+ PyObject *MessageMapContainer_Type;
#else
static PyMappingMethods MessageMapMappingMethods = {
MapReflectionFriend::Length, // mp_length
@@ -820,7 +816,7 @@ PyTypeObject *MessageMapContainer_Type;
MapReflectionFriend::MessageMapSetItem, // mp_ass_subscript
};
- PyTypeObject _MessageMapContainer_Type = {
+ PyTypeObject MessageMapContainer_Type = {
PyVarObject_HEAD_INIT(&PyType_Type, 0)
FULL_MODULE_NAME ".MessageMapContainer", // tp_name
sizeof(MessageMapContainer), // tp_basicsize
@@ -969,63 +965,6 @@ PyTypeObject MapIterator_Type = {
0, // tp_init
};
-bool InitMapContainers() {
- // ScalarMapContainer_Type derives from our MutableMapping type.
- ScopedPyObjectPtr containers(PyImport_ImportModule(
- "google.protobuf.internal.containers"));
- if (containers == NULL) {
- return false;
- }
-
- ScopedPyObjectPtr mutable_mapping(
- PyObject_GetAttrString(containers.get(), "MutableMapping"));
- if (mutable_mapping == NULL) {
- return false;
- }
-
- if (!PyObject_TypeCheck(mutable_mapping.get(), &PyType_Type)) {
- return false;
- }
-
- Py_INCREF(mutable_mapping.get());
-#if PY_MAJOR_VERSION >= 3
- PyObject* bases = PyTuple_New(1);
- PyTuple_SET_ITEM(bases, 0, mutable_mapping.get());
-
- ScalarMapContainer_Type = reinterpret_cast<PyTypeObject*>(
- PyType_FromSpecWithBases(&ScalarMapContainer_Type_spec, bases));
-#else
- _ScalarMapContainer_Type.tp_base =
- reinterpret_cast<PyTypeObject*>(mutable_mapping.get());
-
- if (PyType_Ready(&_ScalarMapContainer_Type) < 0) {
- return false;
- }
-
- ScalarMapContainer_Type = &_ScalarMapContainer_Type;
-#endif
-
- if (PyType_Ready(&MapIterator_Type) < 0) {
- return false;
- }
-
-#if PY_MAJOR_VERSION >= 3
- MessageMapContainer_Type = reinterpret_cast<PyTypeObject*>(
- PyType_FromSpecWithBases(&MessageMapContainer_Type_spec, bases));
-#else
- Py_INCREF(mutable_mapping.get());
- _MessageMapContainer_Type.tp_base =
- reinterpret_cast<PyTypeObject*>(mutable_mapping.get());
-
- if (PyType_Ready(&_MessageMapContainer_Type) < 0) {
- return false;
- }
-
- MessageMapContainer_Type = &_MessageMapContainer_Type;
-#endif
- return true;
-}
-
} // namespace python
} // namespace protobuf
} // namespace google

Powered by Google App Engine
This is Rietveld 408576698