{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/comments/208791147","pull_request_review_id":144672756,"id":208791147,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwODc5MTE0Nw==","diff_hunk":"@@ -0,0 +1,1229 @@\n+// Licensed to the .NET Foundation under one or more agreements.\n+// The .NET Foundation licenses this file to you under the MIT license.\n+// See the LICENSE file in the project root for more information.\n+\n+#include <stdlib.h>\n+#include <stdio.h>\n+#include <windows.h>\n+#include <xplatform.h>\n+\n+#include \"AsParamNative.h\"\n+\n+///////////////////////////////////////////////////////////////////////////////////\n+//                            EXPORTED METHODS\n+///////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal(InnerSequential inner)\n+{\n+    if(!IsCorrectInnerSequential(&inner))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal: InnerSequential param not as expected\\n\");\n+        PrintInnerSequential(&inner,\"inner\");\n+        return FALSE;\n+    }\n+    inner.f1 = 77;\n+    inner.f2 = 77.0;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef(InnerSequential* inner)\n+{\n+    if(!IsCorrectInnerSequential(inner))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef: InnerSequential param not as expected\\n\");\n+        PrintInnerSequential(inner,\"inner\");\n+        return FALSE;\n+    }\n+    ChangeInnerSequential(inner);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn(InnerSequential* inner)\n+{\n+    if(!IsCorrectInnerSequential(inner))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn: InnerSequential param not as expected\\n\");\n+        PrintInnerSequential(inner,\"inner\");\n+        return FALSE;\n+    }\n+    ChangeInnerSequential(inner);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut(InnerSequential inner)\n+{\n+    if(!IsCorrectInnerSequential(&inner))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByValOut:NNER param not as expected\\n\");\n+        PrintInnerSequential(&inner,\"inner\");\n+        return FALSE;\n+    }\n+    inner.f1 = 77;\n+    inner.f2 = 77.0;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut(InnerSequential* inner)\n+{\n+    //change struct\n+    inner->f1 = 77;\n+    inner->f2 = 77.0;\n+    inner->f3 = SysAllocString(L\"changed string\");\n+    return TRUE;\n+}\n+\n+///////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal2(InnerArraySequential outer)\n+{\n+    if(!IsCorrectInnerArraySequential(&outer))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal2: InnerArraySequential param not as expected\\n\");\n+        PrintInnerArraySequential(&outer,\"outer\");\n+        return FALSE;\n+    }\n+    for(int i = 0; i < NumArrElements; i++)\n+    {\n+        outer.arr[i].f1 = 77;\n+        outer.arr[i].f2 = 77.0;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef2(InnerArraySequential* outer)\n+{\n+    if(!IsCorrectInnerArraySequential(outer))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef2: InnerArraySequential param not as expected\\n\");\n+        PrintInnerArraySequential(outer,\"outer\");\n+        return FALSE;\n+    }\n+    ChangeInnerArraySequential(outer);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn2(InnerArraySequential* outer)\n+{\n+    if(!IsCorrectInnerArraySequential(outer))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn2: InnerArraySequential param not as expected\\n\");\n+        PrintInnerArraySequential(outer,\"inner\");\n+        return FALSE;\n+    }\n+    ChangeInnerArraySequential(outer);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut2(InnerArraySequential outer)\n+{\n+    if(!IsCorrectInnerArraySequential(&outer))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal2:InnerArraySequential param not as expected\\n\");\n+        PrintInnerArraySequential(&outer,\"outer\");\n+        return FALSE;\n+    }\n+    for(int i = 0; i < NumArrElements; i++)\n+    {\n+        outer.arr[i].f1 = 77;\n+        outer.arr[i].f2 = 77.0;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut2(InnerArraySequential* outer)\n+{\n+    for(int i = 0;i<NumArrElements;i++)\n+    {\n+        if(outer->arr[i].f1 != 0 || outer->arr[i].f2 != 0.0)\n+        {\n+            printf(\"\\tMarshalStructAsParam_AsSeqByRefOut2: InnerArraySequential param not as expected\\n\");\n+            return FALSE;\n+        }\n+    }\n+    ChangeInnerArraySequential(outer);\n+    return TRUE;\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal3(CharSetAnsiSequential str1)\n+{\n+    if(!IsCorrectCharSetAnsiSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal3:strCharStr param not as expected\\n\");\n+        PrintCharSetAnsiSequential(&str1,\"CharSetAnsiSequential\");\n+        return FALSE;\n+    }\n+    str1.f2 = 'n';\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef3(CharSetAnsiSequential* str1)\n+{\n+    if(!IsCorrectCharSetAnsiSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef3:strCharStr param not as expected\\n\");\n+        PrintCharSetAnsiSequential(str1,\"CharSetAnsiSequential\");\n+        return FALSE;\n+    }\n+    ChangeCharSetAnsiSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn3(CharSetAnsiSequential* str1)\n+{\n+    if(!IsCorrectCharSetAnsiSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn3:strCharStr param not as expected\\n\");\n+        PrintCharSetAnsiSequential(str1,\"CharSetAnsiSequential\");\n+        return FALSE;\n+    }\n+    ChangeCharSetAnsiSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut3(CharSetAnsiSequential str1)\n+{\n+    if(!IsCorrectCharSetAnsiSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal3:strCharStr param not as expected\\n\");\n+        PrintCharSetAnsiSequential(&str1,\"CharSetAnsiSequential\");\n+        return FALSE;\n+    }\n+    str1.f2 = 'n';\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut3(CharSetAnsiSequential* str1)\n+{\n+    char* strSource = \"change string\";\n+    size_t len = strlen(strSource);\n+    LPCSTR temp = (LPCSTR)CoTaskMemAlloc(sizeof(char)*(len + 1));\n+    if(temp != NULL)\n+    {\n+        strcpy_s((char*)temp,len + 1,strSource);\n+        CoTaskMemFree((void*)(str1->f1));\n+        str1->f1 = temp;\n+        str1->f2 = 'n';\n+        return TRUE;\n+    }\n+    else\n+    {\n+        printf(\"Memory Allocated Failed !\");\n+        return FALSE;\n+    }\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal4(CharSetUnicodeSequential str1)\n+{\n+    if(!IsCorrectCharSetUnicodeSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal4:CharSetUnicodeSequential param not as expected\\n\");\n+        PrintCharSetUnicodeSequential(&str1,\"CharSetUnicodeSequential\");\n+        return FALSE;\n+    }\n+    str1.f2 = L'n';\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef4(CharSetUnicodeSequential* str1)\n+{\n+    if(!IsCorrectCharSetUnicodeSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef4:strCharStr param not as expected\\n\");\n+        PrintCharSetUnicodeSequential(str1,\"CharSetUnicodeSequential\");\n+        return FALSE;\n+    }\n+    ChangeCharSetUnicodeSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn4(CharSetUnicodeSequential* str1)\n+{\n+    if(!IsCorrectCharSetUnicodeSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn4:strCharStr param not as expected\\n\");\n+        PrintCharSetUnicodeSequential(str1,\"CharSetUnicodeSequential\");\n+        return FALSE;\n+    }\n+    ChangeCharSetUnicodeSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut4(CharSetUnicodeSequential str1)\n+{\n+    if(!IsCorrectCharSetUnicodeSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal4:strCharStrOut2 param not as expected\\n\");\n+        PrintCharSetUnicodeSequential(&str1,\"CharSetUnicodeSequential\");\n+        return FALSE;\n+    }\n+    str1.f2 = L'n';\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut4(CharSetUnicodeSequential* str1)\n+{\n+    wchar_t* strSource = L\"change string\";\n+    size_t len = wcslen(strSource);\n+    LPCWSTR temp = (LPCWSTR)CoTaskMemAlloc(sizeof(wchar_t)*(len + 1));\n+    if(temp != NULL)\n+    {\n+        wcscpy_s((wchar_t*)temp,len + 1,strSource);\n+        CoTaskMemFree((void*)(str1->f1));\n+        str1->f1 = temp;\n+        str1->f2 = L'n';\n+        return TRUE;\n+    }\n+    else\n+    {\n+        printf(\"Memory Allocated Failed !\");\n+        return FALSE;\n+    }\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal6(NumberSequential str1)\n+{\n+    if(!IsCorrectNumberSequential(&str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByVal6:NumberSequential param not as expected\\n\");\n+        PrintNumberSequential(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeNumberSequential(&str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef6(NumberSequential* str1)\n+{\n+    if(!IsCorrectNumberSequential(str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByRef6:NumberSequential param not as expected\\n\");\n+        PrintNumberSequential(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeNumberSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn6(NumberSequential* str1)\n+{\n+    if(!IsCorrectNumberSequential(str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByRefIn6:NumberSequential param not as expected\\n\");\n+        PrintNumberSequential(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeNumberSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut6(NumberSequential str1)\n+{\n+    if(!IsCorrectNumberSequential(&str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByValOut6:NumberSequential param not as expected\\n\");\n+        PrintNumberSequential(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut6(NumberSequential* str1)\n+{\n+    ChangeNumberSequential(str1);\n+    return TRUE;\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal7(StructSeqWithArrayField str1)\n+{\n+    if(!IsCorrectStructSeqWithArrayField(&str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByVal7:StructSeqWithArrayField param not as expected\\n\");\n+        PrintStructSeqWithArrayField(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    str1.flag = false;\n+    return TRUE;\n+\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef7(StructSeqWithArrayField* str1)\n+{\n+    if(!IsCorrectStructSeqWithArrayField(str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByRef7:StructSeqWithArrayField param not as expected\\n\");\n+        PrintStructSeqWithArrayField(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeStructSeqWithArrayField(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn7(StructSeqWithArrayField* str1)\n+{\n+    if(!IsCorrectStructSeqWithArrayField(str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByRef7:StructSeqWithArrayField param not as expected\\n\");\n+        PrintStructSeqWithArrayField(str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut7(StructSeqWithArrayField str1)\n+{\n+    if(!IsCorrectStructSeqWithArrayField(&str1))\n+    {\n+        printf(\"\\tManaged to Native failed in MarshalStructAsParam_AsSeqByValOut7:StructSeqWithArrayField param not as expected\\n\");\n+        PrintStructSeqWithArrayField(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    str1.flag = false;\n+    return TRUE;\n+\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut7(StructSeqWithArrayField* str1)\n+{\n+    ChangeStructSeqWithArrayField(str1);\n+    return TRUE;\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal8(StructSeqWithEnumField str1)\n+{\n+    if(!IsCorrectStructSeqWithEnumField(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal8:StructSeqWithEnumField param not as expected\\n\");\n+        PrintStructSeqWithEnumField(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    // can not change anything in this struct because it is pass by value from managed side\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef8(StructSeqWithEnumField* str1)\n+{\n+    if(!IsCorrectStructSeqWithEnumField(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef8:StructSeqWithEnumField param not as expected\\n\");\n+        PrintStructSeqWithEnumField(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeStructSeqWithEnumField(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn8(StructSeqWithEnumField* str1)\n+{\n+    if(!IsCorrectStructSeqWithEnumField(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn8:StructSeqWithEnumField param not as expected\\n\");\n+        PrintStructSeqWithEnumField(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeStructSeqWithEnumField(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut8(StructSeqWithEnumField* str1)\n+{\n+    ChangeStructSeqWithEnumField(str1);\n+    return TRUE;\n+}\n+\n+///////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal9(StringStructSequentialAnsi str1)\n+{\n+    if(!IsCorrectStringStructSequentialAnsi(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal9:StringStructSequentialAnsi param not as expected\\n\");\n+        PrintStringStructSequentialAnsi(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef9(StringStructSequentialAnsi* str1)\n+{\n+    if(!IsCorrectStringStructSequentialAnsi(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef9:StringStructSequentialAnsi param not as expected\\n\");\n+        PrintStringStructSequentialAnsi(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeStringStructSequentialAnsi(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn9(StringStructSequentialAnsi* str1)\n+{\n+    if(!IsCorrectStringStructSequentialAnsi(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn9:StringStructSequentialAnsi param not as expected\\n\");\n+        PrintStringStructSequentialAnsi(str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut9(StringStructSequentialAnsi str1)\n+{\n+    if(!IsCorrectStringStructSequentialAnsi(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal9:StringStructSequentialAnsi param not as expected\\n\");\n+        PrintStringStructSequentialAnsi(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut9(StringStructSequentialAnsi* str1)\n+{\n+    ChangeStringStructSequentialAnsi(str1);\n+    return TRUE;\n+}\n+\n+///////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal10(StringStructSequentialUnicode str1)\n+{\n+    if(!IsCorrectStringStructSequentialUnicode(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal10:StringStructSequentialUnicode param not as expected\\n\");\n+        PrintStringStructSequentialUnicode(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef10(StringStructSequentialUnicode* str1)\n+{\n+    if(!IsCorrectStringStructSequentialUnicode(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef10:StringStructSequentialUnicode param not as expected\\n\");\n+        PrintStringStructSequentialUnicode(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeStringStructSequentialUnicode(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn10(StringStructSequentialUnicode* str1)\n+{\n+    if(!IsCorrectStringStructSequentialUnicode(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn10:StringStructSequentialUnicode param not as expected\\n\");\n+        PrintStringStructSequentialUnicode(str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut10(StringStructSequentialUnicode str1)\n+{\n+    if(!IsCorrectStringStructSequentialUnicode(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByValOut10:StringStructSequentialUnicode param not as expected\\n\");\n+        PrintStringStructSequentialUnicode(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut10(StringStructSequentialUnicode* str1)\n+{\n+    ChangeStringStructSequentialUnicode(str1);\n+\n+    return TRUE;\n+}\n+\n+////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal11(PritypeStructSeqWithUnmanagedType str1)\n+{\n+    if(!IsCorrectPritypeStructSeqWithUnmanagedType(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal11:PritypeStructSeqWithUnmanagedType param not as expected\\n\");\n+        PrintPritypeStructSeqWithUnmanagedType(&str1,\"str1\");\n+        return FALSE;\n+    }\n+    //str1.i32 = 256;\n+    //str1.ui32 = 256;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef11(PritypeStructSeqWithUnmanagedType* str1)\n+{\n+    if(!IsCorrectPritypeStructSeqWithUnmanagedType(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef11:PritypeStructSeqWithUnmanagedType param not as expected\\n\");\n+        PrintPritypeStructSeqWithUnmanagedType(str1,\"str1\");\n+        return FALSE;\n+    }\n+    ChangePritypeStructSeqWithUnmanagedType(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn11(PritypeStructSeqWithUnmanagedType* str1)\n+{\n+    if(!IsCorrectPritypeStructSeqWithUnmanagedType(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn11:PritypeStructSeqWithUnmanagedType param not as expected\\n\");\n+        PrintPritypeStructSeqWithUnmanagedType(str1,\"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut11(PritypeStructSeqWithUnmanagedType str1)\n+{\n+    if(!IsCorrectPritypeStructSeqWithUnmanagedType(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByValOut11:PritypeStructSeqWithUnmanagedType param not as expected\\n\");\n+        PrintPritypeStructSeqWithUnmanagedType(&str1,\"str1\");\n+        return FALSE;\n+    }\n+    //str1.i32 = 256;\n+    //str1.ui32 = 256;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut11(PritypeStructSeqWithUnmanagedType* str1)\n+{\n+    ChangePritypeStructSeqWithUnmanagedType(str1);\n+\n+    return TRUE;\n+}\n+\n+///////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT void NtestMethod(StructSequentialWithDelegateField str1)\n+{\n+    printf(\"\\tAction of the delegate\");\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal12(StructSequentialWithDelegateField str1)\n+{\n+    if(/*str1.i32 != 128 ||*/\n+        str1.myDelegate1 == NULL)\n+    {\n+        return FALSE;\n+    }\n+    //str1.i32 = 256;\n+    str1.myDelegate1 = NULL;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef12(StructSequentialWithDelegateField* str1)\n+{\n+    if(/*str1->i32 != 128 ||*/\n+        str1->myDelegate1 == NULL)\n+    {\n+        return FALSE;\n+    }\n+    else\n+    {\n+        //str1->i32 = 256;\n+        str1->myDelegate1 = NULL;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn12(StructSequentialWithDelegateField* str1)\n+{\n+    if( /* str1->i32 != 128 ||*/\n+        str1->myDelegate1 == NULL)\n+    {\n+        return FALSE;\n+    }\n+    else\n+    {\n+        //str1->i32 = 256;\n+        str1->myDelegate1 = NULL;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut12(StructSequentialWithDelegateField str1)\n+{\n+    if(/*str1.i32 != 128 ||*/\n+        str1.myDelegate1 == NULL)\n+    {\n+        return FALSE;\n+    }\n+    //str1.i32 = 256;\n+    str1.myDelegate1 = NULL;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut12(StructSequentialWithDelegateField* str1)\n+{\n+    //str1->i32 = 256;\n+    str1->myDelegate1 = NtestMethod;\n+    return TRUE;\n+}\n+\n+///////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal13(IncludeOuterIntergerStructSequential str1)\n+{\n+    if(!IsCorrectIncludeOuterIntergerStructSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByVal13:IncludeOuterIntergerStructSequential param not as expected\\n\");\n+        PrintIncludeOuterIntergerStructSequential(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    str1.s.i = 64;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef13(IncludeOuterIntergerStructSequential* str1)\n+{\n+    if(!IsCorrectIncludeOuterIntergerStructSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRef13:IncludeOuterIntergerStructSequential param not as expected\\n\");\n+        PrintIncludeOuterIntergerStructSequential(str1, \"str1\");\n+        return FALSE;\n+    }\n+    ChangeIncludeOuterIntergerStructSequential(str1);\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefIn13(IncludeOuterIntergerStructSequential* str1)\n+{\n+    if(!IsCorrectIncludeOuterIntergerStructSequential(str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByRefIn13:IncludeOuterIntergerStructSequential param not as expected\\n\");\n+        PrintIncludeOuterIntergerStructSequential(str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByValOut13(IncludeOuterIntergerStructSequential str1)\n+{\n+    if(!IsCorrectIncludeOuterIntergerStructSequential(&str1))\n+    {\n+        printf(\"\\tMarshalStructAsParam_AsSeqByValOut13:IncludeOuterIntergerStructSequential param not as expected\\n\");\n+        PrintIncludeOuterIntergerStructSequential(&str1, \"str1\");\n+        return FALSE;\n+    }\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRefOut13(IncludeOuterIntergerStructSequential* str1)\n+{\n+    ChangeIncludeOuterIntergerStructSequential(str1);\n+\n+    return TRUE;\n+}\n+\n+//////////////////////////////////////////////////////////////////////////////////////////////////////////\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByVal14(StructSequentialWithPointerField str1)\n+{\n+    if(str1.i32 != (LPINT)(16) || str1.i != 32)\n+        return FALSE;\n+    str1.i = 64;\n+    return TRUE;\n+}\n+\n+extern \"C\" DLL_EXPORT BOOL __stdcall MarshalStructAsParam_AsSeqByRef14(StructSequentialWithPointerField* str1)\n+{\n+    if(str1->i32 != (LPINT)(16) || str1->i != 32)\n+        return FALSE;\n+    else\n+    {\n+        str1->i32 = (LPINT)(str1->i);","path":"tests/src/Interop/PInvoke/Structures/PInvoke/AsParamNative.cpp","position":null,"original_position":747,"commit_id":"2cb1b5f22dc22985cb89b5ef872bcfa791e599a3","original_commit_id":"ae656b18c0377d38c3944be14b13e795c3685c77","user":{"login":"jiangzeng","id":20982381,"node_id":"MDQ6VXNlcjIwOTgyMzgx","avatar_url":"https://avatars0.githubusercontent.com/u/20982381?v=4","gravatar_id":"","url":"https://api.github.com/users/jiangzeng","html_url":"https://github.com/jiangzeng","followers_url":"https://api.github.com/users/jiangzeng/followers","following_url":"https://api.github.com/users/jiangzeng/following{/other_user}","gists_url":"https://api.github.com/users/jiangzeng/gists{/gist_id}","starred_url":"https://api.github.com/users/jiangzeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jiangzeng/subscriptions","organizations_url":"https://api.github.com/users/jiangzeng/orgs","repos_url":"https://api.github.com/users/jiangzeng/repos","events_url":"https://api.github.com/users/jiangzeng/events{/privacy}","received_events_url":"https://api.github.com/users/jiangzeng/received_events","type":"User","site_admin":false},"body":"@AaronRobinsonMSFT Thanks for your suggestion, I tried UINT but failed with similar issue.\r\nSo I tried INT64 as first cast like `str1->i32 = (LPINT)(INT64)(str1->i)`, and it works without warnings, do you think INT64 here is reasonable?","created_at":"2018-08-09T02:27:32Z","updated_at":"2018-08-09T02:27:32Z","html_url":"https://github.com/dotnet/coreclr/pull/19352#discussion_r208791147","pull_request_url":"https://api.github.com/repos/dotnet/coreclr/pulls/19352","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/comments/208791147"},"html":{"href":"https://github.com/dotnet/coreclr/pull/19352#discussion_r208791147"},"pull_request":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/19352"}},"in_reply_to_id":208514972},"pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/19352","id":206943198,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2OTQzMTk4","html_url":"https://github.com/dotnet/coreclr/pull/19352","diff_url":"https://github.com/dotnet/coreclr/pull/19352.diff","patch_url":"https://github.com/dotnet/coreclr/pull/19352.patch","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/19352","number":19352,"state":"open","locked":false,"title":"Add PInvoke/Structures tests","user":{"login":"jiangzeng","id":20982381,"node_id":"MDQ6VXNlcjIwOTgyMzgx","avatar_url":"https://avatars0.githubusercontent.com/u/20982381?v=4","gravatar_id":"","url":"https://api.github.com/users/jiangzeng","html_url":"https://github.com/jiangzeng","followers_url":"https://api.github.com/users/jiangzeng/followers","following_url":"https://api.github.com/users/jiangzeng/following{/other_user}","gists_url":"https://api.github.com/users/jiangzeng/gists{/gist_id}","starred_url":"https://api.github.com/users/jiangzeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jiangzeng/subscriptions","organizations_url":"https://api.github.com/users/jiangzeng/orgs","repos_url":"https://api.github.com/users/jiangzeng/repos","events_url":"https://api.github.com/users/jiangzeng/events{/privacy}","received_events_url":"https://api.github.com/users/jiangzeng/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-08-08T09:20:49Z","updated_at":"2018-08-09T02:27:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"55ae901c0e73e8ebf5b000549abf0cf1e48de40f","assignee":null,"assignees":[],"requested_reviewers":[{"login":"luqunl","id":15055752,"node_id":"MDQ6VXNlcjE1MDU1NzUy","avatar_url":"https://avatars3.githubusercontent.com/u/15055752?v=4","gravatar_id":"","url":"https://api.github.com/users/luqunl","html_url":"https://github.com/luqunl","followers_url":"https://api.github.com/users/luqunl/followers","following_url":"https://api.github.com/users/luqunl/following{/other_user}","gists_url":"https://api.github.com/users/luqunl/gists{/gist_id}","starred_url":"https://api.github.com/users/luqunl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luqunl/subscriptions","organizations_url":"https://api.github.com/users/luqunl/orgs","repos_url":"https://api.github.com/users/luqunl/repos","events_url":"https://api.github.com/users/luqunl/events{/privacy}","received_events_url":"https://api.github.com/users/luqunl/received_events","type":"User","site_admin":false},{"login":"AaronRobinsonMSFT","id":30635565,"node_id":"MDQ6VXNlcjMwNjM1NTY1","avatar_url":"https://avatars0.githubusercontent.com/u/30635565?v=4","gravatar_id":"","url":"https://api.github.com/users/AaronRobinsonMSFT","html_url":"https://github.com/AaronRobinsonMSFT","followers_url":"https://api.github.com/users/AaronRobinsonMSFT/followers","following_url":"https://api.github.com/users/AaronRobinsonMSFT/following{/other_user}","gists_url":"https://api.github.com/users/AaronRobinsonMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/AaronRobinsonMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AaronRobinsonMSFT/subscriptions","organizations_url":"https://api.github.com/users/AaronRobinsonMSFT/orgs","repos_url":"https://api.github.com/users/AaronRobinsonMSFT/repos","events_url":"https://api.github.com/users/AaronRobinsonMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/AaronRobinsonMSFT/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":244582102,"node_id":"MDU6TGFiZWwyNDQ1ODIxMDI=","url":"https://api.github.com/repos/dotnet/coreclr/labels/area-Interop","name":"area-Interop","color":"d4c5f9","default":false},{"id":563191784,"node_id":"MDU6TGFiZWw1NjMxOTE3ODQ=","url":"https://api.github.com/repos/dotnet/coreclr/labels/test%20enhancement","name":"test enhancement","color":"1d76db","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/coreclr/pulls/19352/commits","review_comments_url":"https://api.github.com/repos/dotnet/coreclr/pulls/19352/comments","review_comment_url":"https://api.github.com/repos/dotnet/coreclr/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/19352/comments","statuses_url":"https://api.github.com/repos/dotnet/coreclr/statuses/2cb1b5f22dc22985cb89b5ef872bcfa791e599a3","head":{"label":"AaronRobinsonMSFT:Interop_PInvoke_Structures","ref":"Interop_PInvoke_Structures","sha":"2cb1b5f22dc22985cb89b5ef872bcfa791e599a3","user":{"login":"AaronRobinsonMSFT","id":30635565,"node_id":"MDQ6VXNlcjMwNjM1NTY1","avatar_url":"https://avatars0.githubusercontent.com/u/30635565?v=4","gravatar_id":"","url":"https://api.github.com/users/AaronRobinsonMSFT","html_url":"https://github.com/AaronRobinsonMSFT","followers_url":"https://api.github.com/users/AaronRobinsonMSFT/followers","following_url":"https://api.github.com/users/AaronRobinsonMSFT/following{/other_user}","gists_url":"https://api.github.com/users/AaronRobinsonMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/AaronRobinsonMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AaronRobinsonMSFT/subscriptions","organizations_url":"https://api.github.com/users/AaronRobinsonMSFT/orgs","repos_url":"https://api.github.com/users/AaronRobinsonMSFT/repos","events_url":"https://api.github.com/users/AaronRobinsonMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/AaronRobinsonMSFT/received_events","type":"User","site_admin":false},"repo":{"id":133579114,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM1NzkxMTQ=","name":"coreclr","full_name":"AaronRobinsonMSFT/coreclr","owner":{"login":"AaronRobinsonMSFT","id":30635565,"node_id":"MDQ6VXNlcjMwNjM1NTY1","avatar_url":"https://avatars0.githubusercontent.com/u/30635565?v=4","gravatar_id":"","url":"https://api.github.com/users/AaronRobinsonMSFT","html_url":"https://github.com/AaronRobinsonMSFT","followers_url":"https://api.github.com/users/AaronRobinsonMSFT/followers","following_url":"https://api.github.com/users/AaronRobinsonMSFT/following{/other_user}","gists_url":"https://api.github.com/users/AaronRobinsonMSFT/gists{/gist_id}","starred_url":"https://api.github.com/users/AaronRobinsonMSFT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AaronRobinsonMSFT/subscriptions","organizations_url":"https://api.github.com/users/AaronRobinsonMSFT/orgs","repos_url":"https://api.github.com/users/AaronRobinsonMSFT/repos","events_url":"https://api.github.com/users/AaronRobinsonMSFT/events{/privacy}","received_events_url":"https://api.github.com/users/AaronRobinsonMSFT/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/AaronRobinsonMSFT/coreclr","description":"This repo contains the .NET Core runtime, called CoreCLR, and the base library, called System.Private.Corelib (or mscorlib). It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes. We welcome contributions.","fork":true,"url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr","forks_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/forks","keys_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/teams","hooks_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/hooks","issue_events_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/issues/events{/number}","events_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/events","assignees_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/assignees{/user}","branches_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/branches{/branch}","tags_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/tags","blobs_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/git/refs{/sha}","trees_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/statuses/{sha}","languages_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/languages","stargazers_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/stargazers","contributors_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/contributors","subscribers_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/subscribers","subscription_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/subscription","commits_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/commits{/sha}","git_commits_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/git/commits{/sha}","comments_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/comments{/number}","issue_comment_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/issues/comments{/number}","contents_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/contents/{+path}","compare_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/merges","archive_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/downloads","issues_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/issues{/number}","pulls_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/pulls{/number}","milestones_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/milestones{/number}","notifications_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/labels{/name}","releases_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/releases{/id}","deployments_url":"https://api.github.com/repos/AaronRobinsonMSFT/coreclr/deployments","created_at":"2018-05-15T22:16:11Z","updated_at":"2018-06-01T19:23:44Z","pushed_at":"2018-08-09T02:22:34Z","git_url":"git://github.com/AaronRobinsonMSFT/coreclr.git","ssh_url":"git@github.com:AaronRobinsonMSFT/coreclr.git","clone_url":"https://github.com/AaronRobinsonMSFT/coreclr.git","svn_url":"https://github.com/AaronRobinsonMSFT/coreclr","homepage":"https://github.com/dotnet/core","size":233350,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"b4131b9f9dc9c73e47b315fff886db66374b1b21","user":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":30092893,"node_id":"MDEwOlJlcG9zaXRvcnkzMDA5Mjg5Mw==","name":"coreclr","full_name":"dotnet/coreclr","owner":{"login":"dotnet","id":9141961,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkxNDE5NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/coreclr","description":"This repo contains the .NET Core runtime, called CoreCLR, and the base library, called System.Private.Corelib (or mscorlib). It includes the garbage collector, JIT compiler, base .NET data types and many low-level classes. We welcome contributions.","fork":false,"url":"https://api.github.com/repos/dotnet/coreclr","forks_url":"https://api.github.com/repos/dotnet/coreclr/forks","keys_url":"https://api.github.com/repos/dotnet/coreclr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/coreclr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/coreclr/teams","hooks_url":"https://api.github.com/repos/dotnet/coreclr/hooks","issue_events_url":"https://api.github.com/repos/dotnet/coreclr/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/coreclr/events","assignees_url":"https://api.github.com/repos/dotnet/coreclr/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/coreclr/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/coreclr/tags","blobs_url":"https://api.github.com/repos/dotnet/coreclr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/coreclr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/coreclr/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/coreclr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/coreclr/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/coreclr/languages","stargazers_url":"https://api.github.com/repos/dotnet/coreclr/stargazers","contributors_url":"https://api.github.com/repos/dotnet/coreclr/contributors","subscribers_url":"https://api.github.com/repos/dotnet/coreclr/subscribers","subscription_url":"https://api.github.com/repos/dotnet/coreclr/subscription","commits_url":"https://api.github.com/repos/dotnet/coreclr/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/coreclr/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/coreclr/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/coreclr/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/coreclr/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/coreclr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/coreclr/merges","archive_url":"https://api.github.com/repos/dotnet/coreclr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/coreclr/downloads","issues_url":"https://api.github.com/repos/dotnet/coreclr/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/coreclr/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/coreclr/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/coreclr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/coreclr/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/coreclr/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/coreclr/deployments","created_at":"2015-01-30T22:10:02Z","updated_at":"2018-08-08T22:54:29Z","pushed_at":"2018-08-09T02:22:37Z","git_url":"git://github.com/dotnet/coreclr.git","ssh_url":"git@github.com:dotnet/coreclr.git","clone_url":"https://github.com/dotnet/coreclr.git","svn_url":"https://github.com/dotnet/coreclr","homepage":"https://github.com/dotnet/core","size":233377,"stargazers_count":9691,"watchers_count":9691,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2401,"mirror_url":null,"archived":false,"open_issues_count":1774,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":2401,"open_issues":1774,"watchers":9691,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/19352"},"html":{"href":"https://github.com/dotnet/coreclr/pull/19352"},"issue":{"href":"https://api.github.com/repos/dotnet/coreclr/issues/19352"},"comments":{"href":"https://api.github.com/repos/dotnet/coreclr/issues/19352/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/19352/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/coreclr/pulls/19352/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/coreclr/statuses/2cb1b5f22dc22985cb89b5ef872bcfa791e599a3"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"jiangzeng"}}