Ejemplo n.º 1
0
        private void InitReturnBufferArg(TypeSig returnType, bool hasThis)
        {
            if (returnType.IsStruct())
            {
                var returnBuffer = new LocalVariableDescriptor()
                {
                    IsParameter = true,
                    Kind        = StackValueKind.ByRef,
                    IsTemp      = false,
                    ExactSize   = TypeList.GetExactSize(StackValueKind.ByRef),
                };

                // Ensure return buffer parameter goes after the this parameter if present
                _returnBufferArgIndex = hasThis ? 1 : 0;
                _localVariableTable.Insert(_returnBufferArgIndex.Value, returnBuffer);

                _parameterCount++;
            }
        }