On Tue, Aug 15, 2017 at 10:21:08AM +0800, wyang wrote: > On 2017年08月14日 23:58, Michael S. Tsirkin wrote: > > On Mon, Aug 14, 2017 at 04:48:38PM +0800, wei.y...@ucloud.cn wrote: > > > From: Wei Yang <wei.y...@ucloud.cn> > > > > > > The assert would be touched when the version of acpica is greater than or > > > equal to 20160318. its reason is that "Disasembler: Update a couple > > > output items(commit id: 1ecbb3d)" is introduced by Robert, the patch > > > emits the AML filename as a zero-length string, and allows the compiler > > > to create the name later. > > So how does the output look then? Do you mean there's no comma then? > > sorry for confusion, more clearly, since the AML filename is a zero-length > string, so the output of dsl file looks like this after > executing iasl command to disassemble AML file to DSL file > > > DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) > > the block name is NULL string.
It's an empty string, sure, but is it NULL? I see: block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END); which looks for "," and assigns a pointer to it to block_name. Is it actually NULL in your testing? > If the version of iasl command is less than 20160318, the output looks like > > DefinitionBlock ("/tmp/xxxx.aml", "DSDT", 1, "BOCHS ", "BXPCDSDT", > 0x00000001) > > > > > > > > Signed-off-by: Yang, Wei <wei.y...@ucloud.com> > > > CC: Michael S. Tsirkin <m...@redhat.com> > > > CC: Igor Mammedov <imamm...@redhat.com> > > > CC: qemu-devel@nongnu.org > > > --- > > > tests/bios-tables-test.c | 1 - > > > 1 file changed, 1 deletion(-) > > > > > > diff --git a/tests/bios-tables-test.c b/tests/bios-tables-test.c > > > index 88dbf97853..d2ab073848 100644 > > > --- a/tests/bios-tables-test.c > > > +++ b/tests/bios-tables-test.c > > > @@ -350,7 +350,6 @@ static GString *normalize_asl(gchar *asl_code) > > > /* strip def block name (it has file path in it) */ > > > if (g_str_has_prefix(asl->str, DEF_BLOCK)) { > > > block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END); > > > - g_assert(block_name); > > > asl = g_string_erase(asl, 0, > > > block_name + sizeof(BLOCK_NAME_END) - > > > asl->str); > > The pointer math here won't do the right thing then, will it? > > Yes, I will fix it. > > Thanks > Wei > > > > > } > > > -- > > > 2.11.0 > > > > > -- > Wei Yang(杨伟) > Mobile: +86-13436682065 > Email: wei.y...@ucloud.cn >