diff options
Diffstat (limited to 'python/google/protobuf/internal/containers.py')
-rwxr-xr-x | python/google/protobuf/internal/containers.py | 8 |
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): |