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-10-15 22:00:27 +0200 |
commit | 66311c49351574421d1bfc4a4d0fa8e5040426a6 (patch) | |
tree | 475f7bf9079e7a22922cbb41dee9f34ce73477bb | |
parent | fea57a4c099879fa2f71aa420b4c995996ae4e89 (diff) | |
download | base-66311c49351574421d1bfc4a4d0fa8e5040426a6.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 a7300652077b..8e27adf62abe 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -4053,7 +4053,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; } } @@ -5421,7 +5421,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); |