Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
hdfs::Status is doing all sorts of reinterpret casts on a block of memory referenced by a char *. Using a char *, casting to a wider type, and dereferencing can cause fun alignment issues.
As far as I can tell that data layout in status can be boiled down to:
class Status { int code; std::string msg; }
This avoids doing manual memcopies in the copy ctor and delete[]s in the dtor. It will also get rid of boilerplate null checks and casts.