status_t ValueNodeManager::AddChildNodes(ValueNodeChild* nodeChild) { AutoLocker<ValueNodeContainer> containerLocker(fContainer); // create a value node for the value node child, if doesn't have one yet ValueNode* valueNode = nodeChild->Node(); if (valueNode == NULL) { status_t error = _CreateValueNode(nodeChild); if (error != B_OK) return error; valueNode = nodeChild->Node(); } // check if this node requires child creation // to be deferred until after its location/value have been resolved if (valueNode->ChildCreationNeedsValue()) return B_OK; // create the children, if not done yet if (valueNode->ChildrenCreated()) return B_OK; return valueNode->CreateChildren(); }
status_t VariablesView::VariableTableModel::_AddChildNodes(ValueNodeChild* nodeChild) { // create a value node for the value node child, if doesn't have one yet ValueNode* valueNode = nodeChild->Node(); if (valueNode == NULL) { status_t error = _CreateValueNode(nodeChild); if (error != B_OK) return error; valueNode = nodeChild->Node(); } // create the children, if not done yet if (valueNode->ChildrenCreated()) return B_OK; return valueNode->CreateChildren(); }