Home / Function/ ssMergeBackward() — netty Function Reference

ssMergeBackward() — netty Function Reference

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

Function java Buffer Allocators calls 2 called by 1

Entity Profile

Dependency Diagram

graph TD
  67ff73e6_3a21_9a09_e1e6_cf6b42d443c0["ssMergeBackward()"]
  5a60cb70_bf06_95bf_9c73_ed3a4dc24eba["Bzip2DivSufSort"]
  67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|defined in| 5a60cb70_bf06_95bf_9c73_ed3a4dc24eba
  1a5aae65_48a0_09a4_5acf_6d87a1e5c541["ssMerge()"]
  1a5aae65_48a0_09a4_5acf_6d87a1e5c541 -->|calls| 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0
  8f2018df_9270_64c3_5e3a_0e80d1e98d92["ssBlockSwap()"]
  67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|calls| 8f2018df_9270_64c3_5e3a_0e80d1e98d92
  4de771c8_37be_d30e_9a72_bab498988da7["ssCompare()"]
  67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 -->|calls| 4de771c8_37be_d30e_9a72_bab498988da7
  style 67ff73e6_3a21_9a09_e1e6_cf6b42d443c0 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java lines 605–730

    private void ssMergeBackward(final int pa, int[] buf, final int bufoffset,
                                 final int first, final int middle, final int last, final int depth) {
        final int[] SA = this.SA;

        int p1, p2;
        int bufend;
        int i, j, k;
        int t;
        int r;
        int x;

        bufend = bufoffset + (last - middle);
        ssBlockSwap(buf, bufoffset, SA, middle, last - middle);

        x = 0;
        if (buf[bufend - 1] < 0) {
            x |=  1;
            p1 = pa + ~buf[bufend - 1];
        } else {
            p1 = pa +  buf[bufend - 1];
        }
        if (SA[middle - 1] < 0) {
            x |=  2;
            p2 = pa + ~SA[middle - 1];
        } else {
            p2 = pa +  SA[middle - 1];
        }
        for (t = SA[last - 1], i = last - 1, j = bufend - 1, k = middle - 1;;) {

            r = ssCompare(p1, p2, depth);
            if (r > 0) {
                if ((x & 1) != 0) {
                    do {
                        SA[i--] = buf[j];
                        buf[j--] = SA[i];
                    } while (buf[j] < 0);
                    x ^= 1;
                }
                SA[i--] = buf[j];
                if (j <= bufoffset) {
                    buf[j] = t;
                    return;
                }
                buf[j--] = SA[i];

                if (buf[j] < 0) {
                    x |=  1;
                    p1 = pa + ~buf[j];
                } else {
                    p1 = pa +  buf[j];
                }
            } else if (r < 0) {
                if ((x & 2) != 0) {
                    do {
                        SA[i--] = SA[k];
                        SA[k--] = SA[i];
                    } while (SA[k] < 0);
                    x ^= 2;
                }
                SA[i--] = SA[k];
                SA[k--] = SA[i];
                if (k < first) {
                    while (bufoffset < j) {
                        SA[i--] = buf[j];
                        buf[j--] = SA[i];
                    }
                    SA[i] = buf[j];
                    buf[j] = t;
                    return;
                }

                if (SA[k] < 0) {
                    x |=  2;
                    p2 = pa + ~SA[k];
                } else {
                    p2 = pa +  SA[k];
                }
            } else {
                if ((x & 1) != 0) {
                    do {
                        SA[i--] = buf[j];

Domain

Subdomains

Called By

Frequently Asked Questions

What does ssMergeBackward() do?
ssMergeBackward() is a function in the netty codebase, defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java.
Where is ssMergeBackward() defined?
ssMergeBackward() is defined in codec-compression/src/main/java/io/netty/handler/codec/compression/Bzip2DivSufSort.java at line 605.
What does ssMergeBackward() call?
ssMergeBackward() calls 2 function(s): ssBlockSwap, ssCompare.
What calls ssMergeBackward()?
ssMergeBackward() is called by 1 function(s): ssMerge.

Analyze Your Own Codebase

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

Try Supermodel Free