Fix a bunch of compiler warnings, and turn on warnings.
This commit is contained in:
parent
9b010290a4
commit
11dbf2aab3
9 changed files with 83 additions and 52 deletions
|
@ -23,7 +23,7 @@ if not os.path.exists("build"):
|
|||
|
||||
source_files = glob.glob("src/*.cpp")
|
||||
|
||||
compile_args = "g++ -O3 -Iinclude -Ilib --std=c++11 --shared -fPIC".split()
|
||||
compile_args = "g++ -Wall -O3 -Iinclude -Ilib --std=c++11 --shared -fPIC".split()
|
||||
compile_args += source_files
|
||||
compile_args += sys.argv[1:]
|
||||
|
||||
|
|
|
@ -23,11 +23,9 @@ namespace olm {
|
|||
/**
|
||||
* The number of bytes of unpadded base64 needed to encode a length of input.
|
||||
*/
|
||||
static std::size_t encode_base64_length(
|
||||
std::size_t encode_base64_length(
|
||||
std::size_t input_length
|
||||
) {
|
||||
return 4 * ((input_length + 2) / 3) + (input_length + 2) % 3 - 2;
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Encode the raw input as unpadded base64.
|
||||
|
|
|
@ -23,58 +23,38 @@
|
|||
|
||||
namespace olm {
|
||||
|
||||
static std::size_t pickle_length(
|
||||
inline std::size_t pickle_length(
|
||||
const std::uint32_t & value
|
||||
) {
|
||||
return 4;
|
||||
}
|
||||
|
||||
|
||||
static std::uint8_t * pickle(
|
||||
std::uint8_t * pickle(
|
||||
std::uint8_t * pos,
|
||||
std::uint32_t value
|
||||
) {
|
||||
pos += 4;
|
||||
for (unsigned i = 4; i--;) { *(--pos) = value; value >>= 8; }
|
||||
return pos + 4;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
static std::uint8_t const * unpickle(
|
||||
std::uint8_t const * unpickle(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
std::uint32_t & value
|
||||
) {
|
||||
value = 0;
|
||||
if (end - pos < 4) return end;
|
||||
for (unsigned i = 4; i--;) { value <<= 8; value |= *(pos++); }
|
||||
return pos;
|
||||
}
|
||||
);
|
||||
|
||||
static std::size_t pickle_length(
|
||||
|
||||
inline std::size_t pickle_length(
|
||||
const bool & value
|
||||
) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static std::uint8_t * pickle(
|
||||
std::uint8_t * pickle(
|
||||
std::uint8_t * pos,
|
||||
bool value
|
||||
) {
|
||||
*(pos++) = value ? 1 : 0;
|
||||
return pos;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
static std::uint8_t const * unpickle(
|
||||
std::uint8_t const * unpickle(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
bool & value
|
||||
) {
|
||||
if (pos == end) return end;
|
||||
value = *(pos++);
|
||||
return pos;
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
|
||||
template<typename T, std::size_t max_size>
|
||||
|
@ -117,23 +97,15 @@ std::uint8_t const * unpickle(
|
|||
}
|
||||
|
||||
|
||||
static std::uint8_t * pickle_bytes(
|
||||
std::uint8_t * pickle_bytes(
|
||||
std::uint8_t * pos,
|
||||
std::uint8_t const * bytes, std::size_t bytes_length
|
||||
) {
|
||||
std::memcpy(pos, bytes, bytes_length);
|
||||
return pos + bytes_length;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
static std::uint8_t const * unpickle_bytes(
|
||||
std::uint8_t const * unpickle_bytes(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
std::uint8_t * bytes, std::size_t bytes_length
|
||||
) {
|
||||
if (end - pos < bytes_length) return end;
|
||||
std::memcpy(bytes, pos, bytes_length);
|
||||
return pos + bytes_length;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
std::size_t pickle_length(
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
namespace olm {
|
||||
|
||||
class Account;
|
||||
struct Account;
|
||||
|
||||
enum struct MessageType {
|
||||
PRE_KEY = 0,
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
namespace olm {
|
||||
|
||||
class Ed25519PublicKey;
|
||||
struct Ed25519PublicKey;
|
||||
|
||||
struct Utility {
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ optimize_opts = os.environ.get("OPTIMIZE_FLAGS", "-O3")
|
|||
|
||||
compile_args = [emcc]
|
||||
compile_args += optimize_opts.split()
|
||||
compile_args += ["-Wall"]
|
||||
compile_args += """
|
||||
-Iinclude
|
||||
-Ilib
|
||||
|
|
|
@ -45,6 +45,12 @@ static const std::uint8_t DECODE_BASE64[128] = {
|
|||
} // namespace
|
||||
|
||||
|
||||
std::size_t olm::encode_base64_length(
|
||||
std::size_t input_length
|
||||
) {
|
||||
return 4 * ((input_length + 2) / 3) + (input_length + 2) % 3 - 2;
|
||||
}
|
||||
|
||||
std::uint8_t * olm::encode_base64(
|
||||
std::uint8_t const * input, std::size_t input_length,
|
||||
std::uint8_t * output
|
||||
|
|
|
@ -136,7 +136,7 @@ static std::uint8_t const * decode(
|
|||
std::uint8_t const * len_start = pos;
|
||||
pos = varint_skip(pos, end);
|
||||
std::size_t len = varint_decode<std::size_t>(len_start, pos);
|
||||
if (len > end - pos) return end;
|
||||
if (len + pos > end) return end;
|
||||
value = pos;
|
||||
value_length = len;
|
||||
pos += len;
|
||||
|
@ -157,7 +157,7 @@ static std::uint8_t const * skip_unknown(
|
|||
std::uint8_t const * len_start = pos;
|
||||
pos = varint_skip(pos, end);
|
||||
std::size_t len = varint_decode<std::size_t>(len_start, pos);
|
||||
if (len > end - pos) return end;
|
||||
if (len + pos > end) return end;
|
||||
pos += len;
|
||||
} else {
|
||||
return end;
|
||||
|
|
|
@ -14,6 +14,60 @@
|
|||
*/
|
||||
#include "olm/pickle.hh"
|
||||
|
||||
std::uint8_t * olm::pickle(
|
||||
std::uint8_t * pos,
|
||||
std::uint32_t value
|
||||
) {
|
||||
pos += 4;
|
||||
for (unsigned i = 4; i--;) { *(--pos) = value; value >>= 8; }
|
||||
return pos + 4;
|
||||
}
|
||||
|
||||
|
||||
std::uint8_t const * olm::unpickle(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
std::uint32_t & value
|
||||
) {
|
||||
value = 0;
|
||||
if (end < pos + 4) return end;
|
||||
for (unsigned i = 4; i--;) { value <<= 8; value |= *(pos++); }
|
||||
return pos;
|
||||
}
|
||||
|
||||
std::uint8_t * olm::pickle(
|
||||
std::uint8_t * pos,
|
||||
bool value
|
||||
) {
|
||||
*(pos++) = value ? 1 : 0;
|
||||
return pos;
|
||||
}
|
||||
|
||||
std::uint8_t const * olm::unpickle(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
bool & value
|
||||
) {
|
||||
if (pos == end) return end;
|
||||
value = *(pos++);
|
||||
return pos;
|
||||
}
|
||||
|
||||
std::uint8_t * olm::pickle_bytes(
|
||||
std::uint8_t * pos,
|
||||
std::uint8_t const * bytes, std::size_t bytes_length
|
||||
) {
|
||||
std::memcpy(pos, bytes, bytes_length);
|
||||
return pos + bytes_length;
|
||||
}
|
||||
|
||||
std::uint8_t const * olm::unpickle_bytes(
|
||||
std::uint8_t const * pos, std::uint8_t const * end,
|
||||
std::uint8_t * bytes, std::size_t bytes_length
|
||||
) {
|
||||
if (end < pos + bytes_length) return end;
|
||||
std::memcpy(bytes, pos, bytes_length);
|
||||
return pos + bytes_length;
|
||||
}
|
||||
|
||||
|
||||
std::size_t olm::pickle_length(
|
||||
const olm::Curve25519PublicKey & value
|
||||
|
|
Loading…
Reference in a new issue