MCPcopy Create free account
hub / github.com/MiniZinc/MiniZincIDE / addChild

Method addChild

cp-profiler/src/cpprofiler/tree/node.cpp:153–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153void Node::addChild()
154{
155
156 auto kids = childrenCount();
157
158 switch (kids)
159 {
160 case 0:
161 {
162 setTag(Tag::ONE_CHILD);
163 }
164 break;
165 case 1:
166 {
167 setTag(Tag::TWO_CHILDREN);
168 }
169 break;
170 case 2:
171 {
172 /// copy existing children
173 // auto kids = new NodeID[3];
174 auto kids = static_cast<NodeID *>(malloc(sizeof(NodeID) * 3));
175 kids[0] = getChild(0);
176 kids[1] = getChild(1);
177 setPtr(kids);
178 setTag(Tag::MORE_CHILDREN);
179 m_noOfChildren = 3;
180 }
181 break;
182 default:
183 {
184 m_noOfChildren++;
185 auto ptr = static_cast<NodeID *>(realloc(getPtr(), sizeof(NodeID) * m_noOfChildren));
186 setPtr(ptr);
187 setTag(Tag::MORE_CHILDREN);
188 }
189 break;
190 }
191}
192
193NodeID Node::getParent() const
194{

Callers 2

addExtraChildMethod · 0.80
db_addChildMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected