• Len Brown's avatar
    [ACPI] ACPICA 20050211 from Bob Moore · 82d6b1e6
    Len Brown authored
    Implemented ACPI 3.0 support for implicit conversion within
    the Match() operator. match_obj can now be of type
    integer, buffer, or string instead of just type integer.
    Package elements are implicitly converted to the type
    of the match_obj. This change aligns the behavior of
    Match() with the behavior of the other logical operators
    (LLess(), etc.)  It also requires an errata change to the
    ACPI specification as this support was intended for ACPI
    3.0, but was inadvertently omitted.
    
    Fixed a problem with the internal implicit "to buffer"
    conversion.  Strings that are converted to buffers will
    cause buffer truncation if the string is smaller than the
    target buffer. Integers that are converted to buffers will
    not cause buffer truncation, only zero extension (both as
    per the ACPI spec.) The problem was introduced when code
    was added to truncate the buffer, but this should not be
    performed in all cases, only the string case.
    
    Fixed a problem with the Buffer and Package operators
    where the interpreter would get confused if two such
    operators were used as operands to an ASL operator (such
    as LLess(Buffer(1){0},Buffer(1){1}).  The internal result
    stack was not being popped after the execution of these
    operators, resulting in an AE_NO_RETURN_VALUE exception.
    
    Fixed a problem with constructs of the form
    Store(Index(...),...). The reference object returned from
    Index was inadvertently resolved to an actual value. This
    problem was introduced in version 20050114 when the
    behavior of Store() was modified to restrict the object
    types that can be used as the source operand (to match
    the ACPI specification.)
    
    Reduced stack use in acpi_get_object_info().
    82d6b1e6
exstorob.c 6.59 KB