aboutsummaryrefslogtreecommitdiff
path: root/python/google/protobuf/internal/containers.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/google/protobuf/internal/containers.py')
-rwxr-xr-xpython/google/protobuf/internal/containers.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/python/google/protobuf/internal/containers.py b/python/google/protobuf/internal/containers.py
index fa1e3402..d8a825df 100755
--- a/python/google/protobuf/internal/containers.py
+++ b/python/google/protobuf/internal/containers.py
@@ -112,9 +112,11 @@ class RepeatedScalarFieldContainer(BaseContainer):
return
orig_empty = len(self._values) == 0
+ new_values = []
for elem in elem_seq:
self._type_checker.CheckValue(elem)
- self._values.extend(elem_seq)
+ new_values.append(elem)
+ self._values.extend(new_values)
self._message_listener.ByteSizeDirty()
if orig_empty:
self._message_listener.TransitionToNonempty()
@@ -139,9 +141,11 @@ class RepeatedScalarFieldContainer(BaseContainer):
def __setslice__(self, start, stop, values):
"""Sets the subset of items from between the specified indices."""
+ new_values = []
for value in values:
self._type_checker.CheckValue(value)
- self._values[start:stop] = list(values)
+ new_values.append(value)
+ self._values[start:stop] = new_values
self._message_listener.ByteSizeDirty()
def __delitem__(self, key):