summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-09 18:13:46 +0100
committerBenjamin Schubert <ben.c.schubert@gmail.com>2019-07-09 18:13:46 +0100
commite60cfad7f3a5f99a3d1f438ebf5091b276dc2ca1 (patch)
tree77ad15eb1c050b3770817189fa29fc47d82bc07e
parent21887e3a4f777ce54a427956bde1b927450c173a (diff)
downloadbuildstream-bschubert/node-cleanup.tar.gz
_yaml: Remove code duplication on '_new_node_from_*'bschubert/node-cleanup
-rw-r--r--src/buildstream/_yaml.pyx20
1 files changed, 4 insertions, 16 deletions
diff --git a/src/buildstream/_yaml.pyx b/src/buildstream/_yaml.pyx
index a84c05759..9865c3059 100644
--- a/src/buildstream/_yaml.pyx
+++ b/src/buildstream/_yaml.pyx
@@ -1184,14 +1184,8 @@ cdef Node _new_node_from_dict(dict indict, Node ref_node):
cdef str k
for k, v in indict.items():
- vtype = type(v)
- if vtype is dict:
- ret.value[k] = _new_node_from_dict(v, ref_node)
- elif vtype is list:
- ret.value[k] = _new_node_from_list(v, ref_node)
- else:
- ret.value[k] = ScalarNode.__new__(
- ScalarNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), v)
+ ret.value[k] = _create_node_recursive(v, ref_node)
+
return ret
@@ -1201,14 +1195,8 @@ cdef Node _new_node_from_list(list inlist, Node ref_node):
SequenceNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), [])
for v in inlist:
- vtype = type(v)
- if vtype is dict:
- ret.value.append(_new_node_from_dict(v, ref_node))
- elif vtype is list:
- ret.value.append(_new_node_from_list(v, ref_node))
- else:
- ret.value.append(
- ScalarNode.__new__(ScalarNode, ref_node.file_index, ref_node.line, next_synthetic_counter(), v))
+ ret.value.append(_create_node_recursive(v, ref_node))
+
return ret