From a5e75c5bc2db1a8123aa9e73d3ad1e3b4d2e68d8 Mon Sep 17 00:00:00 2001 From: Shivakumar Neginal Date: Wed, 5 Apr 2023 04:34:29 +0000 Subject: [PATCH] Revert "Add additional check on float precision after parsing, only compile the" This reverts commit f24b9a438d4246607d14eaa04d405c089cb758db. Reason for revert: https://buganizer.corp.google.com/issues/276936463#comment4 please check Change-Id: Ia3c2d1a18fd320d0d4eea4643ce917676d093532 --- tools/aapt2/ResourceUtils.cpp | 13 +------------ tools/aapt2/ResourceUtils_test.cpp | 15 --------------- tools/aapt2/ResourceValues.cpp | 15 +++------------ tools/aapt2/ResourceValues.h | 1 - 4 files changed, 4 insertions(+), 40 deletions(-) diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp index e670f3803c303..5a118a902963d 100644 --- a/tools/aapt2/ResourceUtils.cpp +++ b/tools/aapt2/ResourceUtils.cpp @@ -670,19 +670,8 @@ std::unique_ptr TryParseItemForAttribute( // Try parsing this as a float. auto floating_point = TryParseFloat(value); if (floating_point) { - // Only check if the parsed result lost precision when the parsed item is - // android::Res_value::TYPE_FLOAT and there is other possible types saved in type_mask, like - // ResTable_map::TYPE_INTEGER. if (type_mask & AndroidTypeToAttributeTypeMask(floating_point->value.dataType)) { - const bool mayOnlyBeFloat = (type_mask & ~float_mask) == 0; - const bool parsedAsFloat = floating_point->value.dataType == android::Res_value::TYPE_FLOAT; - if (!mayOnlyBeFloat && parsedAsFloat) { - if (floating_point->toPrettyString() == value.data()) { - return std::move(floating_point); - } - } else { - return std::move(floating_point); - } + return std::move(floating_point); } } } diff --git a/tools/aapt2/ResourceUtils_test.cpp b/tools/aapt2/ResourceUtils_test.cpp index ffc6795af90d3..568871a4d66e5 100644 --- a/tools/aapt2/ResourceUtils_test.cpp +++ b/tools/aapt2/ResourceUtils_test.cpp @@ -228,21 +228,6 @@ TEST(ResourceUtilsTest, ItemsWithWhitespaceAreParsedCorrectly) { Pointee(ValueEq(BinaryPrimitive(Res_value::TYPE_FLOAT, expected_float_flattened)))); } -TEST(ResourceUtilsTest, FloatAndBigIntegerParsedCorrectly) { - const float expected_float = 0.125f; - const uint32_t expected_float_flattened = *(uint32_t*)&expected_float; - EXPECT_THAT(ResourceUtils::TryParseItemForAttribute("0.125", ResTable_map::TYPE_FLOAT), - Pointee(ValueEq(BinaryPrimitive(Res_value::TYPE_FLOAT, expected_float_flattened)))); - - EXPECT_EQ(ResourceUtils::TryParseItemForAttribute("1099511627776", ResTable_map::TYPE_INTEGER), - std::unique_ptr(nullptr)); - - const float big_float = 1099511627776.0f; - const uint32_t big_flattened = *(uint32_t*)&big_float; - EXPECT_THAT(ResourceUtils::TryParseItemForAttribute("1099511627776", ResTable_map::TYPE_FLOAT), - Pointee(ValueEq(BinaryPrimitive(Res_value::TYPE_FLOAT, big_flattened)))); -} - TEST(ResourceUtilsTest, ParseSdkVersionWithCodename) { EXPECT_THAT(ResourceUtils::ParseSdkVersion("Q"), Eq(std::optional(10000))); EXPECT_THAT(ResourceUtils::ParseSdkVersion("Q.fingerprint"), Eq(std::optional(10000))); diff --git a/tools/aapt2/ResourceValues.cpp b/tools/aapt2/ResourceValues.cpp index 728e35a266b7b..a5754e0d168f2 100644 --- a/tools/aapt2/ResourceValues.cpp +++ b/tools/aapt2/ResourceValues.cpp @@ -22,12 +22,12 @@ #include #include +#include "android-base/stringprintf.h" +#include "androidfw/ResourceTypes.h" + #include "Resource.h" #include "ResourceUtils.h" #include "ValueVisitor.h" -#include "android-base/stringprintf.h" -#include "androidfw/ResourceTypes.h" -#include "io/StringStream.h" #include "util/Util.h" using ::aapt::text::Printer; @@ -487,15 +487,6 @@ void BinaryPrimitive::PrettyPrint(Printer* printer) const { } } -std::string BinaryPrimitive::toPrettyString() const { - std::string str; - io::StringOutputStream out(&str); - text::Printer printer(&out); - this->PrettyPrint(&printer); - out.Flush(); - return str; -} - Attribute::Attribute(uint32_t t) : type_mask(t), min_int(std::numeric_limits::min()), diff --git a/tools/aapt2/ResourceValues.h b/tools/aapt2/ResourceValues.h index daf8814f497bb..6f9dccbd3bcce 100644 --- a/tools/aapt2/ResourceValues.h +++ b/tools/aapt2/ResourceValues.h @@ -285,7 +285,6 @@ struct BinaryPrimitive : public TransformableItem> {