1112 {
1113 try
1114 {
1115 byte* ptr2 = (byte*)(void*)ptr + ofs;
1116 if (((int)ptr2 & 7) == 0)
1117 {
1118 *(long*)ptr2 = val;
1119 }
1120 else
1121 {
1122 Unsafe.WriteUnaligned(ptr2, val);
1123 }
1124 }
1125 catch (NullReferenceException)
1126 {
1127 throw new AccessViolationException();
1128 }
1129 }