4c4
< * $Revision: 74 $
---
> * $Revision: 77 $
12c12
< * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
---
> * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
288c288,289
< * Store the argument in the method/walk descriptor
---
> * Store the argument in the method/walk descriptor.
> * Do not copy the arg in order to implement call by reference
290,291c291
< Status = AcpiDsStoreObjectToLocal (AML_ARG_OP, Index, Params[Index],
< WalkState);
---
> Status = AcpiDsMethodDataSetValue (AML_ARG_OP, Index, Params[Index], WalkState);
559a560
> ACPI_REPORT_ERROR (("Not Arg/Local opcode: %X\n", Opcode));
666d666
< UINT8 ObjType;
698c698,701
< * take a copy of the object before we store.
---
> * take a copy of the object before we store. A reference count
> * of exactly 1 means that the object was just created during the
> * evaluation of an expression, and we can safely use it since it
> * is not used anywhere else.
701,705c704
< ObjType = ACPI_GET_OBJECT_TYPE(ObjDesc);
< if (ObjDesc->Common.ReferenceCount > 1 &&
< ObjType != ACPI_TYPE_BUFFER &&
< ObjType != ACPI_TYPE_PACKAGE &&
< ObjType != ACPI_TYPE_REGION)
---
> if (ObjDesc->Common.ReferenceCount > 1)
< * $Revision: 74 $
---
> * $Revision: 77 $
12c12
< * Some or all of this work - Copyright (c) 1999 - 2003, Intel Corp.
---
> * Some or all of this work - Copyright (c) 1999 - 2004, Intel Corp.
288c288,289
< * Store the argument in the method/walk descriptor
---
> * Store the argument in the method/walk descriptor.
> * Do not copy the arg in order to implement call by reference
290,291c291
< Status = AcpiDsStoreObjectToLocal (AML_ARG_OP, Index, Params[Index],
< WalkState);
---
> Status = AcpiDsMethodDataSetValue (AML_ARG_OP, Index, Params[Index], WalkState);
559a560
> ACPI_REPORT_ERROR (("Not Arg/Local opcode: %X\n", Opcode));
666d666
< UINT8 ObjType;
698c698,701
< * take a copy of the object before we store.
---
> * take a copy of the object before we store. A reference count
> * of exactly 1 means that the object was just created during the
> * evaluation of an expression, and we can safely use it since it
> * is not used anywhere else.
701,705c704
< ObjType = ACPI_GET_OBJECT_TYPE(ObjDesc);
< if (ObjDesc->Common.ReferenceCount > 1 &&
< ObjType != ACPI_TYPE_BUFFER &&
< ObjType != ACPI_TYPE_PACKAGE &&
< ObjType != ACPI_TYPE_REGION)
---
> if (ObjDesc->Common.ReferenceCount > 1)