diff options
author | Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org> | 2013-07-25 11:14:57 +0530 |
---|---|---|
committer | Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org> | 2013-11-01 08:02:13 +0100 |
commit | f69cebb4d1d2bee5081147e841430693ce4fc1d6 (patch) | |
tree | b8443e512aae3576638447e5be73636d04edd7fe | |
parent | dfa2c52ef5fa75588fe47c022c1f50d5e2e99492 (diff) | |
download | base-f69cebb4d1d2bee5081147e841430693ce4fc1d6.tar.gz |
frameworks/base: Fix aliasing violations
Fix violations of strict aliasing rules
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
-rw-r--r-- | libs/androidfw/ResourceTypes.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 1cc3563e0f3d..ac9f82c430b4 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -4204,7 +4204,7 @@ bool ResTable::stringToFloat(const char16_t* s, size_t len, Res_value* outValue) if (*end == 0) { if (outValue) { outValue->dataType = outValue->TYPE_FLOAT; - *(float*)(&outValue->data) = f; + memcpy(&outValue->data, &f, sizeof(float)); // *(float*)(&outValue->data) = f; return true; } } @@ -5571,7 +5571,9 @@ void ResTable::print_value(const Package* pkg, const Res_value& value) const } } } else if (value.dataType == Res_value::TYPE_FLOAT) { - printf("(float) %g\n", *(const float*)&value.data); + float f; + memcpy(&f, &value.data, sizeof(float)); + printf("(float) %g\n", f); } else if (value.dataType == Res_value::TYPE_DIMENSION) { printf("(dimension) "); print_complex(value.data, false); |