365 if(r != 0) { |
365 if(r != 0) { |
366 break; |
366 break; |
367 } |
367 } |
368 } |
368 } |
369 |
369 |
370 if(r < 0 || !resource->next) { |
370 if(r < 0) { |
371 // insert child before resource |
371 // insert child before resource |
372 child->prev = resource->prev; |
372 child->prev = resource->prev; |
373 child->next = resource; |
373 child->next = resource; |
374 if(resource->prev) { |
374 if(resource->prev) { |
375 resource->prev->next = child; |
375 resource->prev->next = child; |
376 } else { |
376 } else { |
377 parent->children = child; |
377 parent->children = child; |
378 } |
378 } |
379 resource->prev = child; |
379 resource->prev = child; |
|
380 break; |
|
381 } if(!resource->next) { |
|
382 // append child |
|
383 child->prev = resource; |
|
384 child->next = NULL; |
|
385 resource->next = child; |
380 break; |
386 break; |
381 } else { |
387 } else { |
382 resource = resource->next; |
388 resource = resource->next; |
383 } |
389 } |
384 } |
390 } |