summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>2013-07-25 11:14:57 +0530
committerBernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>2013-11-01 08:02:13 +0100
commitf69cebb4d1d2bee5081147e841430693ce4fc1d6 (patch)
treeb8443e512aae3576638447e5be73636d04edd7fe
parentdfa2c52ef5fa75588fe47c022c1f50d5e2e99492 (diff)
downloadbase-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.cpp6
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);