MCPcopy Create free account
hub / github.com/ElementsProject/lightning / varint_get

Function varint_get

bitcoin/varint.c:45–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43}
44
45size_t varint_get(const u8 *p, size_t max, varint_t *val)
46{
47 if (max < 1)
48 return 0;
49
50 switch (*p) {
51 case 0xfd:
52 if (max < 3)
53 return 0;
54 *val = ((u64)p[2] << 8) + p[1];
55 return 3;
56 case 0xfe:
57 if (max < 5)
58 return 0;
59 *val = ((u64)p[4] << 24) + ((u64)p[3] << 16)
60 + ((u64)p[2] << 8) + p[1];
61 return 5;
62 case 0xff:
63 if (max < 9)
64 return 0;
65 *val = ((u64)p[8] << 56) + ((u64)p[7] << 48)
66 + ((u64)p[6] << 40) + ((u64)p[5] << 32)
67 + ((u64)p[4] << 24) + ((u64)p[3] << 16)
68 + ((u64)p[2] << 8) + p[1];
69 return 9;
70 default:
71 *val = *p;
72 return 1;
73 }
74}

Callers 1

pull_varintFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected