# HG changeset patch # User michael # Date 1199474198 0 # Node ID 290f5853797a5ed3dcf982bb7d656f4382f0b0ec # Parent 9f2461caf17912f308e2eeb626b24621a23f85ee indent diff -r 9f2461caf179 -r 290f5853797a tree.c --- a/tree.c Fri Jan 04 18:58:36 2008 +0000 +++ b/tree.c Fri Jan 04 19:16:38 2008 +0000 @@ -68,38 +68,38 @@ return NULL; } } - ret= av_tree_insert(&t->child[v>>31], key, cmp, next); - if(!ret){ - int i= (v>>31) ^ !!*next; - AVTreeNode **child= &t->child[i]; - t->state += 2*i - 1; + ret= av_tree_insert(&t->child[v>>31], key, cmp, next); + if(!ret){ + int i= (v>>31) ^ !!*next; + AVTreeNode **child= &t->child[i]; + t->state += 2*i - 1; - if(!(t->state&1)){ - if(t->state){ - if((*child)->state*2 == -t->state){ - *tp= (*child)->child[i^1]; - (*child)->child[i^1]= (*tp)->child[i]; - (*tp)->child[i]= *child; - *child= (*tp)->child[i^1]; - (*tp)->child[i^1]= t; + if(!(t->state&1)){ + if(t->state){ + if((*child)->state*2 == -t->state){ + *tp= (*child)->child[i^1]; + (*child)->child[i^1]= (*tp)->child[i]; + (*tp)->child[i]= *child; + *child= (*tp)->child[i^1]; + (*tp)->child[i^1]= t; - (*tp)->child[0]->state= -((*tp)->state>0); - (*tp)->child[1]->state= (*tp)->state<0 ; - (*tp)->state=0; - }else{ - *tp= *child; - *child= (*child)->child[i^1]; - (*tp)->child[i^1]= t; - if((*tp)->state) t->state = 0; - else t->state>>= 1; - (*tp)->state= -t->state; - } + (*tp)->child[0]->state= -((*tp)->state>0); + (*tp)->child[1]->state= (*tp)->state<0 ; + (*tp)->state=0; + }else{ + *tp= *child; + *child= (*child)->child[i^1]; + (*tp)->child[i^1]= t; + if((*tp)->state) t->state = 0; + else t->state>>= 1; + (*tp)->state= -t->state; } } - if(!(*tp)->state ^ !!*next) - return key; } - return ret; + if(!(*tp)->state ^ !!*next) + return key; + } + return ret; }else{ *tp= *next; *next= NULL; (*tp)->elem= key;