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-10-15 22:00:27 +0200
commit66311c49351574421d1bfc4a4d0fa8e5040426a6 (patch)
tree475f7bf9079e7a22922cbb41dee9f34ce73477bb
parentfea57a4c099879fa2f71aa420b4c995996ae4e89 (diff)
downloadbase-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.cpp6
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);