Home / Function/ trIntroSort() — netty Function Reference

trIntroSort() — netty Function Reference

Architecture documentation for the trIntroSort() function in Bzip2DivSufSort.java from the netty codebase.

Function java Buffer Allocators calls 10 called by 1

Entity Profile

Dependency Diagram

graph TD
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8["trIntroSort()"]
  5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba
  0800d61f_d4b4_d698_736e_dd03b4e4c519["trSort()"]
  0800d61f_d4b4_d698_736e_dd03b4e4c519 -->|calls| 3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8
  4c249bdc_e1de_688c_e0ef_eef3cf5d1d8e["trLog()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 4c249bdc_e1de_688c_e0ef_eef3cf5d1d8e
  3426b691_4b60_1cf9_75ca_2dec8e5ad8f7["update()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 3426b691_4b60_1cf9_75ca_2dec8e5ad8f7
  8c543c23_a272_46a8_3a5c_8091f5ca961f["StackEntry()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 8c543c23_a272_46a8_3a5c_8091f5ca961f
  518cdcfc_c453_fbf6_8931_1df7888ee839["trCopy()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 518cdcfc_c453_fbf6_8931_1df7888ee839
  7eb66a35_f63d_2360_9104_c44d45edb4e6["trInsertionSort()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 7eb66a35_f63d_2360_9104_c44d45edb4e6
  c78162df_9286_60d4_6559_0e9faf4d41b8["trHeapSort()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| c78162df_9286_60d4_6559_0e9faf4d41b8
  f0480673_1fb7_0aeb_3cd1_591ddf267014["trGetC()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| f0480673_1fb7_0aeb_3cd1_591ddf267014
  26cc1f74_19a2_7ef0_44ac_3c7506a18ac4["trPivot()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 26cc1f74_19a2_7ef0_44ac_3c7506a18ac4
  6cd08680_5bba_3632_1ac7_b77001ad18fa["swapElements()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 6cd08680_5bba_3632_1ac7_b77001ad18fa
  0b62cdbf_da8d_5a4f_a35f_229e259044c1["lsUpdateGroup()"]
  3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 -->|calls| 0b62cdbf_da8d_5a4f_a35f_229e259044c1
  style 3a0e84e1_ef8e_7654_d7c8_b99b9f0abfe8 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 1452–1800

    private void trIntroSort(final int isa, int isaD, int isaN, int first,
                             int last, final TRBudget budget, final int size) {
        final int[] SA = this.SA;

        final StackEntry[] stack = new StackEntry[STACK_SIZE];

        int a, b, c, d, e, f;
        int s, t;
        int v, x = 0;
        int limit, next;
        int ssize;

        for (ssize = 0, limit = trLog(last - first);;) {
            if (limit < 0) {
                if (limit == -1) {
                    if (!budget.update(size, last - first)) {
                        break;
                    }
                    PartitionResult result = trPartition(isa, isaD - 1, isaN, first, last, last - 1);
                    a = result.first;
                    b = result.last;
                    if (first < a || b < last) {
                        if (a < last) {
                            for (c = first, v = a - 1; c < a; ++c) {
                                SA[isa + SA[c]] = v;
                            }
                        }
                        if (b < last) {
                            for (c = a, v = b - 1; c < b; ++c) {
                                SA[isa + SA[c]] = v;
                            }
                        }

                        stack[ssize++] = new StackEntry(0, a, b, 0);
                        stack[ssize++] = new StackEntry(isaD - 1, first, last, -2);
                        if (a - first <= last - b) {
                            if (1 < a - first) {
                                stack[ssize++] = new StackEntry(isaD, b, last, trLog(last - b));
                                last = a; limit = trLog(a - first);
                            } else if (1 < last - b) {
                                first = b; limit = trLog(last - b);
                            } else {
                                if (ssize == 0) {
                                    return;
                                }
                                StackEntry entry = stack[--ssize];
                                isaD = entry.a;
                                first = entry.b;
                                last = entry.c;
                                limit = entry.d;
                            }
                        } else {
                            if (1 < last - b) {
                                stack[ssize++] = new StackEntry(isaD, first, a, trLog(a - first));
                                first = b;
                                limit = trLog(last - b);
                            } else if (1 < a - first) {
                                last = a;
                                limit = trLog(a - first);
                            } else {
                                if (ssize == 0) {
                                    return;
                                }
                                StackEntry entry = stack[--ssize];
                                isaD = entry.a;
                                first = entry.b;
                                last = entry.c;
                                limit = entry.d;
                            }
                        }
                    } else {
                        for (c = first; c < last; ++c) {
                            SA[isa + SA[c]] = c;
                        }
                        if (ssize == 0) {
                            return;
                        }
                        StackEntry entry = stack[--ssize];
                        isaD = entry.a;
                        first = entry.b;
                        last = entry.c;

Domain

Subdomains

Called By

Frequently Asked Questions

What does trIntroSort() do?
trIntroSort() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is trIntroSort() defined?
trIntroSort() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 1452.
What does trIntroSort() call?
trIntroSort() calls 10 function(s): StackEntry, lsUpdateGroup, swapElements, trCopy, trGetC, trHeapSort, trInsertionSort, trLog, and 2 more.
What calls trIntroSort()?
trIntroSort() is called by 1 function(s): trSort.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free