Skip to content

Package: Bits

Bits

nameinstructionbranchcomplexitylinemethod
char0(char)
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
char1(char)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getChar(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getCharB(byte[], int)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getCharL(byte[], int)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getDouble(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getDoubleB(byte[], int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getDoubleL(byte[], int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getFloat(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getFloatB(byte[], int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getFloatL(byte[], int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getInt(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getIntB(byte[], int)
M: 20 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getIntL(byte[], int)
M: 20 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getLong(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getLongB(byte[], int)
M: 40 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getLongL(byte[], int)
M: 40 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getShort(byte[], int, boolean)
M: 10 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getShortB(byte[], int)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
getShortL(byte[], int)
M: 10 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
int0(int)
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
int1(int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
int2(int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
int3(int)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long0(long)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long1(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long2(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long3(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long4(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long5(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long6(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
long7(long)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
makeChar(byte, byte)
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
makeInt(byte, byte, byte, byte)
M: 22 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
makeLong(byte, byte, byte, byte, byte, byte, byte, byte)
M: 54 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
makeShort(byte, byte)
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
putChar(byte[], int, char, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putCharB(byte[], int, char)
M: 13 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
putCharL(byte[], int, char)
M: 13 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
putDouble(byte[], int, double, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putDoubleB(byte[], int, double)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
putDoubleL(byte[], int, double)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
putFloat(byte[], int, float, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putFloatB(byte[], int, float)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
putFloatL(byte[], int, float)
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
putInt(byte[], int, int, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putIntB(byte[], int, int)
M: 27 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
putIntL(byte[], int, int)
M: 27 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%
putLong(byte[], int, long, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putLongB(byte[], int, long)
M: 55 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 9 C: 0
0%
M: 1 C: 0
0%
putLongL(byte[], int, long)
M: 55 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 9 C: 0
0%
M: 1 C: 0
0%
putShort(byte[], int, short, boolean)
M: 12 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
putShortB(byte[], int, short)
M: 13 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
putShortL(byte[], int, short)
M: 13 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
short0(short)
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
short1(short)
M: 5 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: package org.glassfish.grizzly.memory;
18:
19: /**
20: * Modified java.nio.Bits source for Grizzly Purposes.
21: *
22: * @since 2.0
23: */
24:
25: class Bits {
26:
27: private Bits() {
28: }
29:
30: // -- get/put char --
31:
32: static char makeChar(byte b1, byte b0) {
33: return (char) (b1 << 8 | b0 & 0xff);
34: }
35:
36: static char getCharL(byte[] bb, int bi) {
37: return makeChar(bb[bi + 1], bb[bi]);
38: }
39:
40: static char getCharB(byte[] bb, int bi) {
41: return makeChar(bb[bi], bb[bi + 1]);
42: }
43:
44: static char getChar(byte[] bb, int bi, boolean bigEndian) {
45:• return bigEndian ? getCharB(bb, bi) : getCharL(bb, bi);
46: }
47:
48: static byte char1(char x) {
49: return (byte) (x >> 8);
50: }
51:
52: static byte char0(char x) {
53: return (byte) x;
54: }
55:
56: static void putCharL(byte[] bb, int bi, char x) {
57: bb[bi] = char0(x);
58: bb[bi + 1] = char1(x);
59: }
60:
61: static void putCharB(byte[] bb, int bi, char x) {
62: bb[bi] = char1(x);
63: bb[bi + 1] = char0(x);
64: }
65:
66: static void putChar(byte[] bb, int bi, char x, boolean bigEndian) {
67:• if (bigEndian) {
68: putCharB(bb, bi, x);
69: } else {
70: putCharL(bb, bi, x);
71: }
72: }
73:
74: // -- get/put short --
75:
76: static short makeShort(byte b1, byte b0) {
77: return (short) (b1 << 8 | b0 & 0xff);
78: }
79:
80: static short getShortL(byte[] bb, int bi) {
81: return makeShort(bb[bi + 1], bb[bi]);
82: }
83:
84: static short getShortB(byte[] bb, int bi) {
85: return makeShort(bb[bi], bb[bi + 1]);
86: }
87:
88: static short getShort(byte[] bb, int bi, boolean bigEndian) {
89:• return bigEndian ? getShortB(bb, bi) : getShortL(bb, bi);
90: }
91:
92: static byte short1(short x) {
93: return (byte) (x >> 8);
94: }
95:
96: static byte short0(short x) {
97: return (byte) x;
98: }
99:
100: static void putShortL(byte[] bb, int bi, short x) {
101: bb[bi] = short0(x);
102: bb[bi + 1] = short1(x);
103: }
104:
105: static void putShortB(byte[] bb, int bi, short x) {
106: bb[bi] = short1(x);
107: bb[bi + 1] = short0(x);
108: }
109:
110: static void putShort(byte[] bb, int bi, short x, boolean bigEndian) {
111:• if (bigEndian) {
112: putShortB(bb, bi, x);
113: } else {
114: putShortL(bb, bi, x);
115: }
116: }
117:
118: // -- get/put int --
119:
120: static int makeInt(byte b3, byte b2, byte b1, byte b0) {
121: return (b3 & 0xff) << 24 | (b2 & 0xff) << 16 | (b1 & 0xff) << 8 | b0 & 0xff;
122: }
123:
124: static int getIntL(byte[] bb, int bi) {
125: return makeInt(bb[bi + 3], bb[bi + 2], bb[bi + 1], bb[bi]);
126: }
127:
128: static int getIntB(byte[] bb, int bi) {
129: return makeInt(bb[bi], bb[bi + 1], bb[bi + 2], bb[bi + 3]);
130: }
131:
132: static int getInt(byte[] bb, int bi, boolean bigEndian) {
133:• return bigEndian ? getIntB(bb, bi) : getIntL(bb, bi);
134: }
135:
136: static byte int3(int x) {
137: return (byte) (x >> 24);
138: }
139:
140: static byte int2(int x) {
141: return (byte) (x >> 16);
142: }
143:
144: static byte int1(int x) {
145: return (byte) (x >> 8);
146: }
147:
148: static byte int0(int x) {
149: return (byte) x;
150: }
151:
152: static void putIntL(byte[] bb, int bi, int x) {
153: bb[bi + 3] = int3(x);
154: bb[bi + 2] = int2(x);
155: bb[bi + 1] = int1(x);
156: bb[bi] = int0(x);
157: }
158:
159: static void putIntB(byte[] bb, int bi, int x) {
160: bb[bi] = int3(x);
161: bb[bi + 1] = int2(x);
162: bb[bi + 2] = int1(x);
163: bb[bi + 3] = int0(x);
164: }
165:
166: static void putInt(byte[] bb, int bi, int x, boolean bigEndian) {
167:• if (bigEndian) {
168: putIntB(bb, bi, x);
169: } else {
170: putIntL(bb, bi, x);
171: }
172: }
173:
174: // -- get/put long --
175:
176: static long makeLong(byte b7, byte b6, byte b5, byte b4, byte b3, byte b2, byte b1, byte b0) {
177: return ((long) b7 & 0xff) << 56 | ((long) b6 & 0xff) << 48 | ((long) b5 & 0xff) << 40 | ((long) b4 & 0xff) << 32 | ((long) b3 & 0xff) << 24
178: | ((long) b2 & 0xff) << 16 | ((long) b1 & 0xff) << 8 | (long) b0 & 0xff;
179: }
180:
181: static long getLongL(byte[] bb, int bi) {
182: return makeLong(bb[bi + 7], bb[bi + 6], bb[bi + 5], bb[bi + 4], bb[bi + 3], bb[bi + 2], bb[bi + 1], bb[bi]);
183: }
184:
185: static long getLongB(byte[] bb, int bi) {
186: return makeLong(bb[bi], bb[bi + 1], bb[bi + 2], bb[bi + 3], bb[bi + 4], bb[bi + 5], bb[bi + 6], bb[bi + 7]);
187: }
188:
189: static long getLong(byte[] bb, int bi, boolean bigEndian) {
190:• return bigEndian ? getLongB(bb, bi) : getLongL(bb, bi);
191: }
192:
193: static byte long7(long x) {
194: return (byte) (x >> 56);
195: }
196:
197: static byte long6(long x) {
198: return (byte) (x >> 48);
199: }
200:
201: static byte long5(long x) {
202: return (byte) (x >> 40);
203: }
204:
205: static byte long4(long x) {
206: return (byte) (x >> 32);
207: }
208:
209: static byte long3(long x) {
210: return (byte) (x >> 24);
211: }
212:
213: static byte long2(long x) {
214: return (byte) (x >> 16);
215: }
216:
217: static byte long1(long x) {
218: return (byte) (x >> 8);
219: }
220:
221: static byte long0(long x) {
222: return (byte) x;
223: }
224:
225: static void putLongL(byte[] bb, int bi, long x) {
226: bb[bi + 7] = long7(x);
227: bb[bi + 6] = long6(x);
228: bb[bi + 5] = long5(x);
229: bb[bi + 4] = long4(x);
230: bb[bi + 3] = long3(x);
231: bb[bi + 2] = long2(x);
232: bb[bi + 1] = long1(x);
233: bb[bi] = long0(x);
234: }
235:
236: static void putLongB(byte[] bb, int bi, long x) {
237: bb[bi] = long7(x);
238: bb[bi + 1] = long6(x);
239: bb[bi + 2] = long5(x);
240: bb[bi + 3] = long4(x);
241: bb[bi + 4] = long3(x);
242: bb[bi + 5] = long2(x);
243: bb[bi + 6] = long1(x);
244: bb[bi + 7] = long0(x);
245: }
246:
247: static void putLong(byte[] bb, int bi, long x, boolean bigEndian) {
248:• if (bigEndian) {
249: putLongB(bb, bi, x);
250: } else {
251: putLongL(bb, bi, x);
252: }
253: }
254:
255: // -- get/put float --
256:
257: static float getFloatL(byte[] bb, int bi) {
258: return Float.intBitsToFloat(getIntL(bb, bi));
259: }
260:
261: static float getFloatB(byte[] bb, int bi) {
262: return Float.intBitsToFloat(getIntB(bb, bi));
263: }
264:
265: static float getFloat(byte[] bb, int bi, boolean bigEndian) {
266:• return bigEndian ? getFloatB(bb, bi) : getFloatL(bb, bi);
267: }
268:
269: static void putFloatL(byte[] bb, int bi, float x) {
270: putIntL(bb, bi, Float.floatToRawIntBits(x));
271: }
272:
273: static void putFloatB(byte[] bb, int bi, float x) {
274: putIntB(bb, bi, Float.floatToRawIntBits(x));
275: }
276:
277: static void putFloat(byte[] bb, int bi, float x, boolean bigEndian) {
278:• if (bigEndian) {
279: putFloatB(bb, bi, x);
280: } else {
281: putFloatL(bb, bi, x);
282: }
283: }
284:
285: // -- get/put double --
286:
287: static double getDoubleL(byte[] bb, int bi) {
288: return Double.longBitsToDouble(getLongL(bb, bi));
289: }
290:
291: static double getDoubleB(byte[] bb, int bi) {
292: return Double.longBitsToDouble(getLongB(bb, bi));
293: }
294:
295: static double getDouble(byte[] bb, int bi, boolean bigEndian) {
296:• return bigEndian ? getDoubleB(bb, bi) : getDoubleL(bb, bi);
297: }
298:
299: static void putDoubleL(byte[] bb, int bi, double x) {
300: putLongL(bb, bi, Double.doubleToRawLongBits(x));
301: }
302:
303: static void putDoubleB(byte[] bb, int bi, double x) {
304: putLongB(bb, bi, Double.doubleToRawLongBits(x));
305: }
306:
307: static void putDouble(byte[] bb, int bi, double x, boolean bigEndian) {
308:• if (bigEndian) {
309: putDoubleB(bb, bi, x);
310: } else {
311: putDoubleL(bb, bi, x);
312: }
313: }
314:
315: }