internal unsafe PMXObject() { var ptr = Marshal.AllocHGlobal(sizeof(PMXObject_)); // Initialized memory for safety. *((PMXObject_ *)ptr) = default; UnmanagedMemoryChecker.RegisterNewAllocatedBytes(sizeof(PMXObject_)); _ptr = ptr; }
internal RawString(ReadOnlySpan <byte> source, StringEncoding encoding) { if (source.Length == 0) { _headPointer = default; _byteLength = default; Encoding = encoding; return; } _headPointer = Marshal.AllocHGlobal(source.Length); _byteLength = source.Length; Encoding = encoding; source.CopyTo(new Span <byte>((void *)_headPointer, source.Length)); UnmanagedMemoryChecker.RegisterNewAllocatedBytes(_byteLength); }