aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/utils/mem_ops.h
diff options
context:
space:
mode:
authorJack Lloyd <[email protected]>2017-10-03 00:38:15 -0400
committerJack Lloyd <[email protected]>2017-10-03 00:38:15 -0400
commit04d64c3e0fe60a25b1f1a5c2eaf7e2986d2130dd (patch)
tree3dc2cc7e970fc5f1cdc94887b03704d82c37e07e /src/lib/utils/mem_ops.h
parent180540de74c58a72492692f58b63f32647e80bd8 (diff)
Add wrappers for reinterpret_cast between char* and uint8_t*
Generally speaking reinterpret_cast is sketchy stuff. But the special case of char*/uint8_t* is both common and safe. By isolating those, the remaining (likely sketchy) cases are easier to grep for.
Diffstat (limited to 'src/lib/utils/mem_ops.h')
-rw-r--r--src/lib/utils/mem_ops.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/lib/utils/mem_ops.h b/src/lib/utils/mem_ops.h
index 3274bfaf6..ed4d6cb27 100644
--- a/src/lib/utils/mem_ops.h
+++ b/src/lib/utils/mem_ops.h
@@ -117,6 +117,26 @@ inline void set_mem(T* ptr, size_t n, uint8_t val)
}
}
+inline const uint8_t* cast_char_ptr_to_uint8(const char* s)
+ {
+ return reinterpret_cast<const uint8_t*>(s);
+ }
+
+inline const char* cast_uint8_ptr_to_char(const uint8_t* b)
+ {
+ return reinterpret_cast<const char*>(b);
+ }
+
+inline uint8_t* cast_char_ptr_to_uint8(char* s)
+ {
+ return reinterpret_cast<uint8_t*>(s);
+ }
+
+inline char* cast_uint8_ptr_to_char(uint8_t* b)
+ {
+ return reinterpret_cast<char*>(b);
+ }
+
/**
* Memory comparison, input insensitive
* @param p1 a pointer to an array