Development

NAVIGATION
CATEGORIES
REFERRENCE
LINKS
  • r65410 - trunk/mono/mono/tests

    0 answers - 2719 bytes - related search similar search Add To My Delicious Add To My Stumble Upon Add To My Google Mark Add To My Facebook Add To My Digg Add To My Reddit

    Author: zoltan
    Date: 2006-09-14 11:47:27 -0400 (Thu, 14 Sep 2006)
    New Revision: 65410
    Modified:
    Log:
    2006-09-14 Zoltan Varga <vargaz (AT) gmail (DOT) com>
    * pinvoke2.cs libtest.c: Add test for marshalling of blittable classes and null.
    Modified:
    2006-09-14 15:47:04 UTC (rev 65409)
    2006-09-14 15:47:27 UTC (rev 65410)
    @@ -1,3 +1,7 @@
    +2006-09-14 Zoltan Varga <vargaz (AT) gmail (DOT) com>
    +
    +* pinvoke2.cs libtest.c: Add test for marshalling of blittable classes and null.
    +
    2006-09-06 Zoltan Varga <vargaz (AT) gmail (DOT) com>
    * pinvoke3.cs libtest.c: Add test for #79289.
    Modified:
    2006-09-14 15:47:04 UTC (rev 65409)
    2006-09-14 15:47:27 UTC (rev 65410)
    @@ -1148,20 +1148,26 @@
    typedef struct {
    int a;
    int b;
    -} VectorList;
    +} BlittableClass;
    -STDCALL VectorList*
    -TestVectorList (VectorList *vl)
    +STDCALL BlittableClass*
    +TestBlittableClass (BlittableClass *vl)
    {
    -VectorList *res;
    +BlittableClass *res;
    -// printf ("TestVectorList %d %d\n", vl->a, vl->b);
    +// printf ("TestBlittableClass %d %d\n", vl->a, vl->b);
    -vl->a++;
    -vl->b++;
    +if (vl) {
    +vl->a++;
    +vl->b++;
    -res = g_new0 (VectorList, 1);
    -memcpy (res, vl, sizeof (VectorList));
    +res = g_new0 (BlittableClass, 1);
    +memcpy (res, vl, sizeof (BlittableClass));
    +} else {
    +res = g_new0 (BlittableClass, 1);
    +res->a = 42;
    +res->b = 43;
    +}
    return res;
    }
    Modified:
    2006-09-14 15:47:04 UTC (rev 65409)
    2006-09-14 15:47:27 UTC (rev 65410)
    @@ -85,7 +85,7 @@
    }
    [StructLayout(LayoutKind.Sequential)]
    -public class VectorList
    +public class BlittableClass
    {
    public int a = 1;
    public int b = 2;
    @@ -988,19 +988,25 @@
    /* Blittable class */
    [DllImport("libtest")]
    -private static extern VectorList TestVectorList (VectorList vl);
    +private static extern BlittableClass TestBlittableClass (BlittableClass vl);
    public static int test_0_marshal_blittable_class () {
    -VectorList v1 = new VectorList ();
    +BlittableClass v1 = new BlittableClass ();
    /* Since it is blittable, it looks like it is passed as in/out */
    -VectorList v2 = TestVectorList (v1);
    +BlittableClass v2 = TestBlittableClass (v1);
    if (v1.a != 2 || v1.b != 3)
    return 1;
    if (v2.a != 2 || v2.b != 3)
    return 2;
    +
    +// Test null
    +BlittableClass v3 = TestBlittableClass (null);
    +
    +if (v3.a != 42 || v3.b != 43)
    +return 3;
    return 0;
    }
    Mono-patches maillist - Mono-patches (AT) lists (DOT) ximian.com

Re: r65410 - trunk/mono/mono/tests


max 4000 letters.
Your nickname that display:
In order to stop the spam: 7 + 6 =
QUESTION ON "Development"

EMSDN.COM