internal void call(IntPtr context, int num_args, IntPtr argsptr) { scalar_sqlite3_context ctx = new scalar_sqlite3_context(context, _user_data); sqlite3_value[] a = new sqlite3_value[num_args]; // TODO warning on the following line. SizeOf(Type) replaced in .NET 4.5.1 with SizeOf<T>() int ptr_size = Marshal.SizeOf(typeof(IntPtr)); for (int i = 0; i < num_args; i++) { IntPtr vp = Marshal.ReadIntPtr(argsptr, i * ptr_size); a[i] = new sqlite3_value(vp); } _func(ctx, _user_data, a); }
internal void call(IntPtr context, int num_args, IntPtr argsptr) { scalar_sqlite3_context ctx = new scalar_sqlite3_context(context, _user_data); sqlite3_value[] a = new sqlite3_value[num_args]; // TODO warning on the following line. SizeOf(Type) replaced in .NET 4.5.1 with SizeOf<T>() int ptr_size = Marshal.SizeOf(typeof(IntPtr)); for (int i=0; i<num_args; i++) { IntPtr vp = Marshal.ReadIntPtr(argsptr, i * ptr_size); a[i] = new sqlite3_value(vp); } _func(ctx, _user_data, a); }