1226 {
1229 {
1233 {
1235 {
1237 continue;
1238 }
1239 TypeCode typeCode =
Type.GetTypeCode(
type);
1240 int size = data->Size;
1241 if (size == 4)
1242 {
1243 if ((uint)(typeCode - 5) <= 4
u)
1244 {
1246 continue;
1247 }
1248 if (typeCode == TypeCode.UInt32)
1249 {
1251 continue;
1252 }
1253 if (typeCode == TypeCode.Single)
1254 {
1256 continue;
1257 }
1258 if (typeCode == TypeCode.Boolean)
1259 {
1261 continue;
1262 }
1264 {
1265 data++;
1267 }
1269 {
1271 }
1272 }
1273 if (size <= 2)
1274 {
1275 switch (typeCode)
1276 {
1277 case TypeCode.Byte:
1279 continue;
1280 case TypeCode.SByte:
1282 continue;
1283 case TypeCode.Int16:
1285 continue;
1286 case TypeCode.UInt16:
1288 continue;
1289 case TypeCode.Char:
1291 continue;
1292 }
1293 }
1294 else if (size == 8)
1295 {
1296 switch (typeCode)
1297 {
1298 case TypeCode.Int64:
1300 continue;
1301 case TypeCode.UInt64:
1303 continue;
1304 case TypeCode.Double:
1306 continue;
1307 case TypeCode.DateTime:
1309 continue;
1310 }
1313 {
1315 continue;
1316 }
1317 }
1318 else
1319 {
1320 if (typeCode == TypeCode.Decimal)
1321 {
1323 continue;
1324 }
1326 {
1328 continue;
1329 }
1330 }
1332 }
1335 if (data->Size == 0)
1336 {
1338 continue;
1339 }
1340 byte[]
array =
new byte[data->Size];
1343 continue;
1346 {
1348 }
1352 }
1353 }
static void Copy(int[] source, int startIndex, IntPtr destination, int length)