static void measureNodes(enum LayoutType type, struct Node* node) { while (node) { measureNode(type, &node->properties, &node->element); if (node->firstChild) { measureNodes(node->element.layoutType, node->firstChild); } node = node->next; } }
static void measureNodes(enum LayoutType type, struct Node* node) { while(node) { // TODO(josh): Clear this flag during layout pass. node->flags &= ~FLAG_REQ_LAYOUT; if ((node->flags & FLAG_INVALID) == FLAG_INVALID) { node->flags &= ~FLAG_INVALID; measureNode(type, &node->properties, &node->element); } if (node->firstChild) { measureNodes(node->element._layoutType, node->firstChild); } node = node->next; } }