File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -92,18 +92,26 @@ static PyObject* _to_py_value(struct SassValue* value) {
92
92
break ;
93
93
}
94
94
case SASS_MAP : {
95
- size_t i = 0 ;
96
- PyObject * items = PyTuple_New (sass_map_get_length (value ));
97
- for (i = 0 ; i < sass_map_get_length (value ); i += 1 ) {
95
+ PyObject * items ;
96
+ PyObject * lst = PyList_New (0 );
97
+
98
+ struct SassMapIterator * iter = sass_map_make_iterator (value );
99
+ while (!sass_map_iterator_exhausted (iter )) {
98
100
PyObject * kvp = PyTuple_New (2 );
99
101
PyTuple_SetItem (
100
- kvp , 0 , _to_py_value (sass_map_get_key ( value , i ))
102
+ kvp , 0 , _to_py_value (sass_map_iterator_get_key ( iter ))
101
103
);
102
104
PyTuple_SetItem (
103
- kvp , 1 , _to_py_value (sass_map_get_value ( value , i ))
105
+ kvp , 1 , _to_py_value (sass_map_iterator_get_value ( iter ))
104
106
);
105
- PyTuple_SetItem (items , i , kvp );
107
+ PyList_Append (lst , kvp );
108
+
109
+ sass_map_iterator_next (iter );
106
110
}
111
+ sass_map_delete_iterator (iter );
112
+
113
+ items = PySequence_Tuple (lst );
114
+ Py_DECREF (lst );
107
115
retv = PyObject_CallMethod (types_mod , "SassMap" , "(O)" , items );
108
116
Py_DECREF (items );
109
117
break ;
You can’t perform that action at this time.
0 commit comments