summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorandroid-build-team Robot2018-01-14 02:26:14 -0600
committerandroid-build-team Robot2018-01-14 02:26:14 -0600
commit920b274fd5ad9d79ffbec1d820f91f703b4d276e (patch)
tree21e4f99d52c6d8ae507625cc07557362254169aa /parse_xml.cpp
parenteaffd4a2a652305877545cc8d8c46d5e25b0ad3e (diff)
parentb7008f8d49920594ce28dbeb36057394816d1c59 (diff)
downloadplatform-system-libvintf-920b274fd5ad9d79ffbec1d820f91f703b4d276e.tar.gz
platform-system-libvintf-920b274fd5ad9d79ffbec1d820f91f703b4d276e.tar.xz
platform-system-libvintf-920b274fd5ad9d79ffbec1d820f91f703b4d276e.zip
Snap for 4545621 from b7008f8d49920594ce28dbeb36057394816d1c59 to pi-release
Change-Id: Ifd6e5d95557869080270084b84045bf13dd5c2d8
Diffstat (limited to 'parse_xml.cpp')
-rw-r--r--parse_xml.cpp53
1 files changed, 51 insertions, 2 deletions
diff --git a/parse_xml.cpp b/parse_xml.cpp
index 3df7e19..9a09eae 100644
--- a/parse_xml.cpp
+++ b/parse_xml.cpp
@@ -696,10 +696,13 @@ struct SepolicyConverter : public XmlNodeConverter<Sepolicy> {
696}; 696};
697const SepolicyConverter sepolicyConverter{}; 697const SepolicyConverter sepolicyConverter{};
698 698
699[[deprecated]]
699const XmlTextConverter<VndkVersionRange> vndkVersionRangeConverter{"version"}; 700const XmlTextConverter<VndkVersionRange> vndkVersionRangeConverter{"version"};
701
702const XmlTextConverter<std::string> vndkVersionConverter{"version"};
700const XmlTextConverter<std::string> vndkLibraryConverter{"library"}; 703const XmlTextConverter<std::string> vndkLibraryConverter{"library"};
701 704
702struct VndkConverter : public XmlNodeConverter<Vndk> { 705struct [[deprecated]] VndkConverter : public XmlNodeConverter<Vndk> {
703 std::string elementName() const override { return "vndk"; } 706 std::string elementName() const override { return "vndk"; }
704 void mutateNode(const Vndk &object, NodeType *root, DocType *d) const override { 707 void mutateNode(const Vndk &object, NodeType *root, DocType *d) const override {
705 appendChild(root, vndkVersionRangeConverter(object.mVersionRange, d)); 708 appendChild(root, vndkVersionRangeConverter(object.mVersionRange, d));
@@ -714,8 +717,26 @@ struct VndkConverter : public XmlNodeConverter<Vndk> {
714 } 717 }
715}; 718};
716 719
720[[deprecated]]
717const VndkConverter vndkConverter{}; 721const VndkConverter vndkConverter{};
718 722
723struct VendorNdkConverter : public XmlNodeConverter<VendorNdk> {
724 std::string elementName() const override { return "vendor-ndk"; }
725 void mutateNode(const VendorNdk& object, NodeType* root, DocType* d) const override {
726 appendChild(root, vndkVersionConverter(object.mVersion, d));
727 appendChildren(root, vndkLibraryConverter, object.mLibraries, d);
728 }
729 bool buildObject(VendorNdk* object, NodeType* root) const override {
730 if (!parseChild(root, vndkVersionConverter, &object->mVersion) ||
731 !parseChildren(root, vndkLibraryConverter, &object->mLibraries)) {
732 return false;
733 }
734 return true;
735 }
736};
737
738const VendorNdkConverter vendorNdkConverter{};
739
719struct HalManifestSepolicyConverter : public XmlNodeConverter<Version> { 740struct HalManifestSepolicyConverter : public XmlNodeConverter<Version> {
720 std::string elementName() const override { return "sepolicy"; } 741 std::string elementName() const override { return "sepolicy"; }
721 void mutateNode(const Version &m, NodeType *root, DocType *d) const override { 742 void mutateNode(const Version &m, NodeType *root, DocType *d) const override {
@@ -769,7 +790,12 @@ struct HalManifestConverter : public XmlNodeConverter<HalManifest> {
769 } 790 }
770 } else if (m.mType == SchemaType::FRAMEWORK) { 791 } else if (m.mType == SchemaType::FRAMEWORK) {
771 if (!(flags & SerializeFlag::NO_VNDK)) { 792 if (!(flags & SerializeFlag::NO_VNDK)) {
793#pragma clang diagnostic push
794#pragma clang diagnostic ignored "-Wdeprecated-declarations"
772 appendChildren(root, vndkConverter, m.framework.mVndks, d); 795 appendChildren(root, vndkConverter, m.framework.mVndks, d);
796#pragma clang diagnostic pop
797
798 appendChildren(root, vendorNdkConverter, m.framework.mVendorNdks, d);
773 } 799 }
774 } 800 }
775 801
@@ -799,6 +825,8 @@ struct HalManifestConverter : public XmlNodeConverter<HalManifest> {
799 return false; 825 return false;
800 } 826 }
801 } else if (object->mType == SchemaType::FRAMEWORK) { 827 } else if (object->mType == SchemaType::FRAMEWORK) {
828#pragma clang diagnostic push
829#pragma clang diagnostic ignored "-Wdeprecated-declarations"
802 if (!parseChildren(root, vndkConverter, &object->framework.mVndks)) { 830 if (!parseChildren(root, vndkConverter, &object->framework.mVndks)) {
803 return false; 831 return false;
804 } 832 }
@@ -809,6 +837,11 @@ struct HalManifestConverter : public XmlNodeConverter<HalManifest> {
809 return false; 837 return false;
810 } 838 }
811 } 839 }
840#pragma clang diagnostic pop
841
842 if (!parseChildren(root, vendorNdkConverter, &object->framework.mVendorNdks)) {
843 return false;
844 }
812 } 845 }
813 for (auto &&hal : hals) { 846 for (auto &&hal : hals) {
814 std::string description{hal.name}; 847 std::string description{hal.name};
@@ -901,7 +934,16 @@ struct CompatibilityMatrixConverter : public XmlNodeConverter<CompatibilityMatri
901 } 934 }
902 } else if (m.mType == SchemaType::DEVICE) { 935 } else if (m.mType == SchemaType::DEVICE) {
903 if (!(flags & SerializeFlag::NO_VNDK)) { 936 if (!(flags & SerializeFlag::NO_VNDK)) {
904 appendChild(root, vndkConverter(m.device.mVndk, d)); 937#pragma clang diagnostic push
938#pragma clang diagnostic ignored "-Wdeprecated-declarations"
939 if (!(m.device.mVndk == Vndk{})) {
940 appendChild(root, vndkConverter(m.device.mVndk, d));
941 }
942#pragma clang diagnostic pop
943
944 if (!(m.device.mVendorNdk == VendorNdk{})) {
945 appendChild(root, vendorNdkConverter(m.device.mVendorNdk, d));
946 }
905 } 947 }
906 } 948 }
907 949
@@ -944,9 +986,16 @@ struct CompatibilityMatrixConverter : public XmlNodeConverter<CompatibilityMatri
944 } else if (object->mType == SchemaType::DEVICE) { 986 } else if (object->mType == SchemaType::DEVICE) {
945 // <vndk> can be missing because it can be determined at build time, not hard-coded 987 // <vndk> can be missing because it can be determined at build time, not hard-coded
946 // in the XML file. 988 // in the XML file.
989#pragma clang diagnostic push
990#pragma clang diagnostic ignored "-Wdeprecated-declarations"
947 if (!parseOptionalChild(root, vndkConverter, {}, &object->device.mVndk)) { 991 if (!parseOptionalChild(root, vndkConverter, {}, &object->device.mVndk)) {
948 return false; 992 return false;
949 } 993 }
994#pragma clang diagnostic pop
995
996 if (!parseOptionalChild(root, vendorNdkConverter, {}, &object->device.mVendorNdk)) {
997 return false;
998 }
950 } 999 }
951 1000
952 if (!kMetaVersion.minorAtLeast(version)) { 1001 if (!kMetaVersion.minorAtLeast(version)) {