diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2019-03-29 16:40:11 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2019-03-29 16:40:11 +0000 |
commit | 222d1f49264d00972299c6ff23de8100be561897 (patch) | |
tree | e2a1cfd1ec138c9cc64abc609558682be382674f /source/compiler/aslxref.c | |
parent | 805e3b079cfb4a9e01aa35dc378a35f922979517 (diff) |
Notes
Diffstat (limited to 'source/compiler/aslxref.c')
-rw-r--r-- | source/compiler/aslxref.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/source/compiler/aslxref.c b/source/compiler/aslxref.c index b3067feb7c4e..99f6c4a07c0b 100644 --- a/source/compiler/aslxref.c +++ b/source/compiler/aslxref.c @@ -613,7 +613,8 @@ XfNamespaceLocateBegin ( (Op->Asl.ParseOpcode != PARSEOP_NAMESTRING) && (Op->Asl.ParseOpcode != PARSEOP_NAMESEG) && (Op->Asl.ParseOpcode != PARSEOP_METHODCALL) && - (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL)) + (Op->Asl.ParseOpcode != PARSEOP_EXTERNAL) && + (OpInfo->Type != AML_TYPE_NAMED_FIELD)) { return_ACPI_STATUS (AE_OK); } @@ -637,7 +638,8 @@ XfNamespaceLocateBegin ( if ((Op->Asl.ParseOpcode == PARSEOP_NAMESTRING) || (Op->Asl.ParseOpcode == PARSEOP_NAMESEG) || (Op->Asl.ParseOpcode == PARSEOP_METHODCALL) || - (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL)) + (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) || + (OpInfo->Type == AML_TYPE_NAMED_FIELD)) { /* * These are name references, do not push the scope stack @@ -674,6 +676,10 @@ XfNamespaceLocateBegin ( Path = NextOp->Asl.Value.String; } + else if (OpInfo->Type == AML_TYPE_NAMED_FIELD) + { + Path = Op->Asl.Child->Asl.Value.String; + } else { Path = Op->Asl.Value.String; @@ -702,7 +708,7 @@ XfNamespaceLocateBegin ( * We didn't find the name reference by path -- we can qualify this * a little better before we print an error message */ - if (strlen (Path) == ACPI_NAME_SIZE) + if (strlen (Path) == ACPI_NAMESEG_SIZE) { /* A simple, one-segment ACPI name */ @@ -764,7 +770,7 @@ XfNamespaceLocateBegin ( * doesn't exist or just can't be reached. However, we * can differentiate between a NameSeg vs. NamePath. */ - if (strlen (Op->Asl.ExternalName) == ACPI_NAME_SIZE) + if (strlen (Op->Asl.ExternalName) == ACPI_NAMESEG_SIZE) { AslError (ASL_ERROR, ASL_MSG_NOT_FOUND, Op, Op->Asl.ExternalName); |