Home / Function/ subStringSort() — netty Function Reference

subStringSort() — netty Function Reference

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

Function java Buffer Allocators calls 3 called by 1

Entity Profile

Dependency Diagram

graph TD
  6d0196f0_489e_2841_7424_79f0d208f4c9["subStringSort()"]
  5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"]
  6d0196f0_489e_2841_7424_79f0d208f4c9 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba
  d73c676c_466b_db84_289f_f07769f8f60c["sortTypeBstar()"]
  d73c676c_466b_db84_289f_f07769f8f60c -->|calls| 6d0196f0_489e_2841_7424_79f0d208f4c9
  1e0c07d3_ab29_8c77_bb12_13a34e73c315["ssMultiKeyIntroSort()"]
  6d0196f0_489e_2841_7424_79f0d208f4c9 -->|calls| 1e0c07d3_ab29_8c77_bb12_13a34e73c315
  1a5aae65_48a0_09a4_5acf_6d87a1e5c541["ssMerge()"]
  6d0196f0_489e_2841_7424_79f0d208f4c9 -->|calls| 1a5aae65_48a0_09a4_5acf_6d87a1e5c541
  0f3081f4_c454_deea_e5ba_2db21526a3da["ssCompareLast()"]
  6d0196f0_489e_2841_7424_79f0d208f4c9 -->|calls| 0f3081f4_c454_deea_e5ba_2db21526a3da
  style 6d0196f0_489e_2841_7424_79f0d208f4c9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 861–911

    private void subStringSort(final int pa, int first, final int last,
                               final int[] buf, final int bufoffset, final int bufsize,
                               final int depth, final boolean lastsuffix, final int size) {
        final int[] SA = this.SA;

        int a, b;
        int[] curbuf;
        int curbufoffset;
        int i, j, k;
        int curbufsize;

        if (lastsuffix) {
            ++first;
        }
        for (a = first, i = 0; a + SS_BLOCKSIZE < last; a += SS_BLOCKSIZE, ++i) {
            ssMultiKeyIntroSort(pa, a, a + SS_BLOCKSIZE, depth);
            curbuf = SA;
            curbufoffset = a + SS_BLOCKSIZE;
            curbufsize = last - (a + SS_BLOCKSIZE);
            if (curbufsize <= bufsize) {
                curbufsize = bufsize;
                curbuf = buf;
                curbufoffset = bufoffset;
            }
            for (b = a, k = SS_BLOCKSIZE, j = i; (j & 1) != 0; b -= k, k <<= 1, j >>>= 1) {
                ssMerge(pa, b - k, b, b + k, curbuf, curbufoffset, curbufsize, depth);
            }
        }

        ssMultiKeyIntroSort(pa, a, last, depth);

        for (k = SS_BLOCKSIZE; i != 0; k <<= 1, i >>= 1) {
            if ((i & 1) != 0) {
                ssMerge(pa, a - k, a, last, buf, bufoffset, bufsize, depth);
                a -= k;
            }
        }

        if (lastsuffix) {
            int r;
            for (a = first, i = SA[first - 1], r = 1;
                    a < last && (SA[a] < 0 || 0 < (r = ssCompareLast(pa, pa + i, pa + SA[a], depth, size)));
                    ++a) {
                SA[a - 1] = SA[a];
            }
            if (r == 0) {
                SA[a] = ~SA[a];
            }
            SA[a - 1] = i;
        }
    }

Domain

Subdomains

Called By

Frequently Asked Questions

What does subStringSort() do?
subStringSort() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is subStringSort() defined?
subStringSort() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 861.
What does subStringSort() call?
subStringSort() calls 3 function(s): ssCompareLast, ssMerge, ssMultiKeyIntroSort.
What calls subStringSort()?
subStringSort() is called by 1 function(s): sortTypeBstar.

Analyze Your Own Codebase

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

Try Supermodel Free