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
diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp
index e670f38..5a118a9 100644
--- a/tools/aapt2/ResourceUtils.cpp
+++ b/tools/aapt2/ResourceUtils.cpp
@@ -670,19 +670,8 @@
// 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 ffc6795..568871a 100644
--- a/tools/aapt2/ResourceUtils_test.cpp
+++ b/tools/aapt2/ResourceUtils_test.cpp
@@ -228,21 +228,6 @@
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<Item>(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<int>(10000)));
EXPECT_THAT(ResourceUtils::ParseSdkVersion("Q.fingerprint"), Eq(std::optional<int>(10000)));
diff --git a/tools/aapt2/ResourceValues.cpp b/tools/aapt2/ResourceValues.cpp
index 728e35a..a5754e0 100644
--- a/tools/aapt2/ResourceValues.cpp
+++ b/tools/aapt2/ResourceValues.cpp
@@ -22,12 +22,12 @@
#include <set>
#include <sstream>
+#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 @@
}
}
-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<int32_t>::min()),
diff --git a/tools/aapt2/ResourceValues.h b/tools/aapt2/ResourceValues.h
index daf8814..6f9dccb 100644
--- a/tools/aapt2/ResourceValues.h
+++ b/tools/aapt2/ResourceValues.h
@@ -285,7 +285,6 @@
bool Flatten(android::Res_value* out_value) const override;
void Print(std::ostream* out) const override;
void PrettyPrint(text::Printer* printer) const override;
- std::string toPrettyString() const;
};
struct Attribute : public TransformableValue<Attribute, BaseValue<Attribute>> {