Don't dereference a null pointer

If we don't specifiy an output for R.java, don't try to write
data to the class definition

Change-Id: I3ad471ec93dcb8baf13f221174065679cce311ad
Fixes: 72547268
Test: out/host/linux-x86/nativetest64/aapt2_tests/aapt2_tests
This commit is contained in:
Todd Kennedy
2018-03-02 14:19:45 -08:00
parent 11817c6bb2
commit 949b625377
3 changed files with 29 additions and 2 deletions

View File

@@ -438,4 +438,22 @@ TEST(JavaClassGeneratorTest, GenerateOnResourcesLoadedCallbackForSharedLibrary)
EXPECT_THAT(output, HasSubstr("com.boo.R.onResourcesLoaded"));
}
TEST(JavaClassGeneratorTest, OnlyGenerateRText) {
std::unique_ptr<ResourceTable> table =
test::ResourceTableBuilder()
.SetPackageId("android", 0x01)
.AddValue("android:attr/foo", ResourceId(0x01010000), util::make_unique<Attribute>())
.AddValue("android:styleable/hey.dude", ResourceId(0x01020000),
test::StyleableBuilder()
.AddItem("android:attr/foo", ResourceId(0x01010000))
.Build())
.Build();
std::unique_ptr<IAaptContext> context =
test::ContextBuilder().SetPackageId(0x01).SetCompilationPackage("android").Build();
JavaClassGenerator generator(context.get(), table.get(), {});
ASSERT_TRUE(generator.Generate("android", nullptr));
}
} // namespace aapt