Beispiel #1
0
        //public DFunctionSignature(int maxArgsCount)
        //{
        //    Value = GetMask(maxArgsCount);
        //}
        public DFunctionSignature(ref CallFrame callFrame, int maxArgsCount)
        {
            Value = EmptySignature.Value;
            if (callFrame.PassedArgsCount == 0)
            {
                return;
            }

            var argsCount = callFrame.PassedArgsCount;

            if (argsCount > maxArgsCount)
            {
                argsCount = maxArgsCount;
            }
            if (argsCount > TypesPerElement)
            {
                return;
                //throw new System.ArgumentOutOfRangeException("Too many arguments in the function signature!");
            }
            for (var i = argsCount - 1; i >= 0; --i)
            {
                InitArgType(i, callFrame.Arg(i).ValueType);
            }
            //var tmp = Value;
            //for (var i = argsCount - 1; i >= 0; --i)
            //    tmp = (tmp << BitsPerType) | (unchecked((uint)callFrame.Arg(i).ValueType) & TypeMask);
            ////for (var i = argsCount; i < TypesPerElement; ++i)
            ////    tmp = (tmp << TypeBits) | (unchecked((uint)ValueTypes.Unknown) & 0x0F);
            //Value = tmp;
        }
Beispiel #2
0
    //public DFunctionSignature(int maxArgsCount)
    //{
    //    Value = GetMask(maxArgsCount);
    //}
    public DFunctionSignature(ref CallFrame callFrame, int maxArgsCount)
    {
      Value = EmptySignature.Value;
      if (callFrame.PassedArgsCount == 0)
        return;

      var argsCount = callFrame.PassedArgsCount;
      if (argsCount > maxArgsCount)
        argsCount = maxArgsCount;
      if (argsCount > TypesPerElement)
      {
        return;
        //throw new System.ArgumentOutOfRangeException("Too many arguments in the function signature!");
      }
      for (var i = argsCount - 1; i >= 0; --i)
        InitArgType(i, callFrame.Arg(i).ValueType);
      //var tmp = Value;
      //for (var i = argsCount - 1; i >= 0; --i)
      //    tmp = (tmp << BitsPerType) | (unchecked((uint)callFrame.Arg(i).ValueType) & TypeMask);
      ////for (var i = argsCount; i < TypesPerElement; ++i)
      ////    tmp = (tmp << TypeBits) | (unchecked((uint)ValueTypes.Unknown) & 0x0F);
      //Value = tmp;
    }