144 |
144 |
145 void* ucx_avl_put(UcxAVLTree *tree, intptr_t key, void *value) { |
145 void* ucx_avl_put(UcxAVLTree *tree, intptr_t key, void *value) { |
146 if (tree->root) { |
146 if (tree->root) { |
147 UcxAVLNode *n = tree->root; |
147 UcxAVLNode *n = tree->root; |
148 int cmpresult; |
148 int cmpresult; |
149 while (cmpresult = tree->cmpfunc( |
149 while ((cmpresult = tree->cmpfunc( |
150 ptrcast(key), ptrcast(n->key), tree->userdata)) { |
150 ptrcast(key), ptrcast(n->key), tree->userdata))) { |
151 UcxAVLNode *m = cmpresult > 0 ? n->right : n->left; |
151 UcxAVLNode *m = cmpresult > 0 ? n->right : n->left; |
152 if (m) { |
152 if (m) { |
153 n = m; |
153 n = m; |
154 } else { |
154 } else { |
155 break; |
155 break; |