diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2013-04-19 05:49:53 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2013-04-19 05:49:53 +0000 |
| commit | a95efc1a1522251892a7baebcb0569741ad7c6ca (patch) | |
| tree | 123ed5e9ad0bad1d892c0637e33953142b50843f /source/components/utilities/utpredef.c | |
| parent | 9b7735bafd2eb5079bc7f216ba350dbf8f268683 (diff) | |
Notes
Diffstat (limited to 'source/components/utilities/utpredef.c')
| -rw-r--r-- | source/components/utilities/utpredef.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/source/components/utilities/utpredef.c b/source/components/utilities/utpredef.c index 4d85497e6779..114abdba3d78 100644 --- a/source/components/utilities/utpredef.c +++ b/source/components/utilities/utpredef.c @@ -166,6 +166,12 @@ AcpiUtGetExpectedReturnTypes ( UINT32 j; + if (!ExpectedBtypes) + { + ACPI_STRCPY (Buffer, "NONE"); + return; + } + j = 1; Buffer[0] = 0; ThisRtype = ACPI_RTYPE_INTEGER; @@ -373,9 +379,7 @@ AcpiUtGetArgumentTypes ( /* First field in the types list is the count of args to follow */ - ArgCount = (ArgumentTypes & METHOD_ARG_MASK); - ArgumentTypes >>= METHOD_ARG_BIT_WIDTH; - + ArgCount = METHOD_GET_ARG_COUNT (ArgumentTypes); if (ArgCount > METHOD_PREDEF_ARGS_MAX) { printf ("**** Invalid argument count (%u) " @@ -387,7 +391,8 @@ AcpiUtGetArgumentTypes ( for (i = 0; i < ArgCount; i++) { - ThisArgumentType = (ArgumentTypes & METHOD_ARG_MASK); + ThisArgumentType = METHOD_GET_NEXT_TYPE (ArgumentTypes); + if (!ThisArgumentType || (ThisArgumentType > METHOD_MAX_ARG_TYPE)) { printf ("**** Invalid argument type (%u) " @@ -396,10 +401,6 @@ AcpiUtGetArgumentTypes ( } strcat (Buffer, UtExternalTypeNames[ThisArgumentType] + SubIndex); - - /* Shift to next argument type field */ - - ArgumentTypes >>= METHOD_ARG_BIT_WIDTH; SubIndex = 0; } |
