diff options
author | Petr Mrázek <peterix@gmail.com> | 2018-06-28 23:18:45 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2018-06-28 23:18:45 +0200 |
commit | 7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e (patch) | |
tree | 59d922b5c35a70542355ae26f6a2dc442afa5307 /libraries/classparser | |
parent | b5f636b3d57a63f634c4efe5a4ccd9a91f53df04 (diff) | |
download | MultiMC-7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e.tar MultiMC-7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e.tar.gz MultiMC-7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e.tar.lz MultiMC-7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e.tar.xz MultiMC-7fe94ca7b4aa191b1e79331b16724b7e9cc9f56e.zip |
NOISSUE fix all sorts of warnings, enable `Werror` and `pedantic`
Diffstat (limited to 'libraries/classparser')
-rw-r--r-- | libraries/classparser/src/constants.h | 38 | ||||
-rw-r--r-- | libraries/classparser/src/javaendian.h | 12 |
2 files changed, 27 insertions, 23 deletions
diff --git a/libraries/classparser/src/constants.h b/libraries/classparser/src/constants.h index 9c74ab20..c3ef88fd 100644 --- a/libraries/classparser/src/constants.h +++ b/libraries/classparser/src/constants.h @@ -123,7 +123,26 @@ public: return ss.str(); } + struct ref_type_t + { + /** + * Class reference: + * an index within the constant pool to a UTF-8 string containing + * the fully qualified class name (in internal format) + * Used for j_class, j_fieldref, j_methodref and j_interface_methodref + */ + uint16_t class_idx; + // used for j_fieldref, j_methodref and j_interface_methodref + uint16_t name_and_type_idx; + }; + struct name_and_type_t + { + uint16_t name_index; + uint16_t descriptor_index; + }; + std::string str_data; /** String data in 'modified utf-8'.*/ + // store everything here. union { @@ -132,23 +151,8 @@ public: float float_data; double double_data; uint16_t index; - struct - { - /** - * Class reference: - * an index within the constant pool to a UTF-8 string containing - * the fully qualified class name (in internal format) - * Used for j_class, j_fieldref, j_methodref and j_interface_methodref - */ - uint16_t class_idx; - // used for j_fieldref, j_methodref and j_interface_methodref - uint16_t name_and_type_idx; - } ref_type; - struct - { - uint16_t name_index; - uint16_t descriptor_index; - } name_and_type; + ref_type_t ref_type; + name_and_type_t name_and_type; }; }; diff --git a/libraries/classparser/src/javaendian.h b/libraries/classparser/src/javaendian.h index d488b382..5e6fff55 100644 --- a/libraries/classparser/src/javaendian.h +++ b/libraries/classparser/src/javaendian.h @@ -44,33 +44,33 @@ inline uint64_t bigswap(uint64_t x) ((x << 8) & 0x000000FF00000000) | ((x >> 8) & 0x00000000FF000000) | ((x >> 24) & 0x0000000000FF0000) | ((x >> 40) & 0x000000000000FF00) | (x << 56); } -; + inline uint32_t bigswap(uint32_t x) { return (x >> 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) | (x << 24); } -; + inline uint16_t bigswap(uint16_t x) { return (x >> 8) | (x << 8); } -; + inline int64_t bigswap(int64_t x) { return (x >> 56) | ((x << 40) & 0x00FF000000000000) | ((x << 24) & 0x0000FF0000000000) | ((x << 8) & 0x000000FF00000000) | ((x >> 8) & 0x00000000FF000000) | ((x >> 24) & 0x0000000000FF0000) | ((x >> 40) & 0x000000000000FF00) | (x << 56); } -; + inline int32_t bigswap(int32_t x) { return (x >> 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) | (x << 24); } -; + inline int16_t bigswap(int16_t x) { return (x >> 8) | (x << 8); } -; + #endif } |