diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2015-11-25 21:04:42 +0000 | 
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2015-11-25 21:04:42 +0000 | 
| commit | b9098066cd6284319bca922f13e59517f774a103 (patch) | |
| tree | f01fd6c9053cb01ed84c00cb42ee789adafceaf5 /source/compiler/aslmethod.c | |
| parent | 1e24cf365bc9c8df179b145c90d52852724e54ee (diff) | |
Notes
Diffstat (limited to 'source/compiler/aslmethod.c')
| -rw-r--r-- | source/compiler/aslmethod.c | 26 | 
1 files changed, 17 insertions, 9 deletions
diff --git a/source/compiler/aslmethod.c b/source/compiler/aslmethod.c index 40ed971e0712..bf3a683f8d94 100644 --- a/source/compiler/aslmethod.c +++ b/source/compiler/aslmethod.c @@ -101,7 +101,7 @@ MtMethodAnalysisWalkBegin (          /* Create and init method info */ -        MethodInfo       = UtLocalCalloc (sizeof (ASL_METHOD_INFO)); +        MethodInfo = UtLocalCalloc (sizeof (ASL_METHOD_INFO));          MethodInfo->Next = WalkInfo->MethodStack;          MethodInfo->Op = Op; @@ -186,7 +186,9 @@ MtMethodAnalysisWalkBegin (                  NextParamType = NextType->Asl.Child;                  while (NextParamType)                  { -                    MethodInfo->ValidArgTypes[ActualArgs] |= AnMapObjTypeToBtype (NextParamType); +                    MethodInfo->ValidArgTypes[ActualArgs] |= +                        AnMapObjTypeToBtype (NextParamType); +                      NextParamType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;                      NextParamType = NextParamType->Asl.Next;                  } @@ -195,6 +197,7 @@ MtMethodAnalysisWalkBegin (              {                  MethodInfo->ValidArgTypes[ActualArgs] =                      AnMapObjTypeToBtype (NextType); +                  NextType->Asl.ParseOpcode = PARSEOP_DEFAULT_ARG;                  ActualArgs++;              } @@ -251,7 +254,8 @@ MtMethodAnalysisWalkBegin (               * Local was used outside a control method, or there was an error               * in the method declaration.               */ -            AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); +            AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, +                Op, Op->Asl.ExternalName);              return (AE_ERROR);          } @@ -294,7 +298,8 @@ MtMethodAnalysisWalkBegin (               * Arg was used outside a control method, or there was an error               * in the method declaration.               */ -            AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, Op, Op->Asl.ExternalName); +            AslError (ASL_REMARK, ASL_MSG_LOCAL_OUTSIDE_METHOD, +                Op, Op->Asl.ExternalName);              return (AE_ERROR);          } @@ -317,7 +322,7 @@ MtMethodAnalysisWalkBegin (           * The only operator that accepts an uninitialized value is ObjectType()           */          else if ((!MethodInfo->ArgInitialized[RegisterNumber]) && -                 (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE)) +            (Op->Asl.Parent->Asl.ParseOpcode != PARSEOP_OBJECTTYPE))          {              AslError (ASL_ERROR, ASL_MSG_ARG_INIT, Op, ArgName);          } @@ -418,7 +423,8 @@ MtMethodAnalysisWalkBegin (          i = ApCheckForPredefinedName (Op, Op->Asl.NameSeg);          if (i < ACPI_VALID_RESERVED_NAME_MAX)          { -            AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, Op, Op->Asl.ExternalName); +            AslError (ASL_ERROR, ASL_MSG_RESERVED_USE, +                Op, Op->Asl.ExternalName);          }          break; @@ -495,9 +501,10 @@ MtCheckNamedObjectInMethod (      const ACPI_OPCODE_INFO  *OpInfo; -    /* We don't care about actual method declarations */ +    /* We don't care about actual method declarations or scopes */ -    if (Op->Asl.AmlOpcode == AML_METHOD_OP) +    if ((Op->Asl.AmlOpcode == AML_METHOD_OP) || +        (Op->Asl.AmlOpcode == AML_SCOPE_OP))      {          return;      } @@ -677,7 +684,8 @@ MtMethodAnalysisWalkEnd (           */          if (Op->Asl.Next)          { -            AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, Op->Asl.Next, NULL); +            AslError (ASL_WARNING, ASL_MSG_UNREACHABLE_CODE, +                Op->Asl.Next, NULL);          }          break;  | 
