Lines Matching refs:tp
121 TREE *tp;
145 tp = np;
146 SIZE(tp) = size;
147 np = NEXT(tp);
148 AFTER(tp) = np;
150 AFTER(tp) = NULL;
154 tp = List[i];
155 List[i] = AFTER(tp);
156 SETBIT0(SIZE(tp));
157 return (DATA(tp));
180 TREE *tp, *sp;
233 tp = Root;
236 if (SIZE(tp) >= size) {
237 if (n == 0 || n >= SIZE(tp)) {
238 sp = tp;
239 n = SIZE(tp);
241 if (LEFT(tp))
242 tp = LEFT(tp);
246 if (RIGHT(tp))
247 tp = RIGHT(tp);
255 } else if (tp != Root) {
257 t_splay(tp);
258 Root = tp;
281 tp = NEXT(sp);
282 SIZE(tp) = n|BIT0;
283 realfree(DATA(tp));
302 TREE *tp, *np;
338 tp = BLOCK(old);
339 ts = SIZE(tp);
348 CLRBITS01(SIZE(tp));
349 if (size == SIZE(tp)) {
350 SIZE(tp) = ts;
356 if (size < MINSIZE || SIZE(tp) < MINSIZE) {
359 SETOLD01(SIZE(tp), ts);
369 if (size > SIZE(tp)) {
370 np = NEXT(tp);
374 SIZE(tp) += SIZE(np) + WORDSIZE;
384 if (size > SIZE(tp) && BOTTOM(tp) && GETCORE(0) == Baddr) {
385 Bottom = tp;
386 if ((tp = _morecore(size)) == NULL) {
387 tp = Bottom;
395 if (size <= SIZE(tp)) {
399 if ((n = (SIZE(tp) - size)) >= MINSIZE + WORDSIZE) {
401 SIZE(tp) = size;
402 np = NEXT(tp);
405 } else if (BOTTOM(tp))
409 SETOLD01(SIZE(tp), ts);
416 SETOLD01(SIZE(tp), ts);
430 * 1. size <= SIZE(tp) < MINSIZE
432 * 2. SIZE(tp) < size < MINSIZE
435 * 3. size < MINSIZE <= SIZE(tp)
439 * 4. MINSIZE <= SIZE(tp) < size
444 CLRBITS01(SIZE(tp));
445 if (SIZE(tp) < MINSIZE) {
446 if (size < SIZE(tp)) { /* case 1. */
447 SETOLD01(SIZE(tp), ts);
458 (SIZE(np = LAST(tp)) + SIZE(tp) + WORDSIZE) >= size) {
461 SIZE(np) += SIZE(tp) + WORDSIZE;
466 (void) memmove(DATA(np), old, SIZE(tp));
468 tp = np;
472 SETOLD01(SIZE(tp), ts);
492 TREE *tp, *sp, *np;
498 tp = BLOCK(old);
499 ts = SIZE(tp);
502 CLRBITS01(SIZE(tp));
505 if (SIZE(tp) < MINSIZE) {
506 ASSERT(SIZE(tp) / WORDSIZE >= 1);
507 ts = SIZE(tp) / WORDSIZE - 1;
508 AFTER(tp) = List[ts];
509 List[ts] = tp;
514 np = NEXT(tp);
518 SIZE(tp) += SIZE(np) + WORDSIZE;
523 np = LAST(tp);
527 SIZE(np) += SIZE(tp) + WORDSIZE;
528 tp = np;
532 PARENT(tp) = LEFT(tp) = RIGHT(tp) = LINKFOR(tp) = NULL;
535 *(SELFP(tp)) = tp;
538 if (BOTTOM(tp))
539 Bottom = tp;
543 size = SIZE(tp);
550 LEFT(np) = tp;
551 PARENT(tp) = np;
558 RIGHT(np) = tp;
559 PARENT(tp) = np;
565 LEFT(sp) = tp;
567 RIGHT(sp) = tp;
568 PARENT(tp) = sp;
570 Root = tp;
574 PARENT(sp) = tp;
575 LEFT(tp) = sp;
578 PARENT(sp) = tp;
579 RIGHT(tp) = sp;
582 LINKFOR(tp) = np;
583 LINKBAK(np) = tp;
590 Root = tp;
594 SETBIT1(SIZE(NEXT(tp)));
596 ASSERT(ISBIT0(SIZE(NEXT(tp))));
605 TREE *tp;
611 tp = Bottom;
628 if (tp != NULL)
629 n -= SIZE(tp);
671 if (tp) {
672 addr = (char *)tp;
673 n += SIZE(tp) + 2 * WORDSIZE;
685 tp = (TREE *)(uintptr_t)addr;
686 SIZE(tp) = n - 2 * WORDSIZE;
687 ASSERT((SIZE(tp) % ALIGN) == 0);
690 SETBIT0(SIZE(NEXT(tp)));
693 if (Bottom && Bottom != tp) {
698 return (tp);
756 TREE *tp, *sp, *gp;
760 tp = LINKBAK(op);
762 LINKBAK(sp) = tp;
763 LINKFOR(tp) = sp;
772 if ((tp = LINKFOR(op)) != NULL) {
773 PARENT(tp) = NULL;
775 PARENT(sp) = tp;
776 LEFT(tp) = sp;
779 PARENT(sp) = tp;
780 RIGHT(tp) = sp;
782 Root = tp;
787 if ((tp = LEFT(op)) != NULL) {
788 PARENT(tp) = NULL;
792 while ((sp = RIGHT(tp)) != NULL) {
794 TDLEFT2(tp, sp, gp);
795 tp = gp;
797 LEFT1(tp, sp);
798 tp = sp;
803 RIGHT(tp) = RIGHT(op);
804 PARENT(RIGHT(tp)) = tp;
806 } else if ((tp = RIGHT(op)) != NULL) /* no left subtree */
807 PARENT(tp) = NULL;
809 Root = tp;
815 * path from Root to tp and make tp the new root.
818 t_splay(TREE *tp)
822 /* iterate until tp is the root */
823 while ((pp = PARENT(tp)) != NULL) {
824 /* grandparent of tp */
828 if (LEFT(pp) == tp) {
830 BURIGHT2(gp, pp, tp);
832 RIGHT1(pp, tp);
835 ASSERT(RIGHT(pp) == tp);
837 BULEFT2(gp, pp, tp);
839 LEFT1(pp, tp);