@@ -105,12 +105,22 @@ in string sizeOfStr
105105 for ( int i = 0 ; i < typeInfo . Members . Count ; i ++ )
106106 {
107107 var currentMember = typeInfo . Members [ i ] ;
108- if ( ! currentMember . IsValueType )
108+ if ( ! currentMember . IsValueType && ! currentMember . AsPointer )
109109 {
110110 builder . Append ( $@ "
111111 //set null marker { currentMember . MemberName }
112112 *((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = 0;
113113" ) ;
114+ continue ;
115+ }
116+
117+ if ( currentMember . AsPointer )
118+ {
119+ builder . Append ( $@ "
120+ //IntPtr must be a valid structure, so write it down. Member: { currentMember . MemberName }
121+ *(IntPtr*)((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = IntPtr.Zero;
122+ " ) ;
123+ continue ;
114124 }
115125 }
116126
@@ -149,12 +159,22 @@ in string sizeOfStr
149159 for ( int i = 0 ; i < typeInfo . Members . Count ; i ++ )
150160 {
151161 var currentMember = typeInfo . Members [ i ] ;
152- if ( ! currentMember . IsValueType )
162+ if ( ! currentMember . IsValueType && ! currentMember . AsPointer )
153163 {
154164 builder . Append ( $@ "
155165 //set null marker { currentMember . MemberName }
156166 *((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = 0;
157167" ) ;
168+ continue ;
169+ }
170+
171+ if ( currentMember . AsPointer )
172+ {
173+ builder . Append ( $@ "
174+ //IntPtr must be a valid structure, so write it down. Member: { currentMember . MemberName }
175+ *(IntPtr*)((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = IntPtr.Zero;
176+ " ) ;
177+ continue ;
158178 }
159179 }
160180
@@ -194,12 +214,22 @@ StackMemoryCollections.Class.StackMemory stackMemory
194214 for ( int i = 0 ; i < typeInfo . Members . Count ; i ++ )
195215 {
196216 var currentMember = typeInfo . Members [ i ] ;
197- if ( ! currentMember . IsValueType )
217+ if ( ! currentMember . IsValueType && ! currentMember . AsPointer )
198218 {
199219 builder . Append ( $@ "
200220 //set null marker { currentMember . MemberName }
201221 *((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = 0;
202222" ) ;
223+ continue ;
224+ }
225+
226+ if ( currentMember . AsPointer )
227+ {
228+ builder . Append ( $@ "
229+ //IntPtr must be a valid structure, so write it down. Member: { currentMember . MemberName }
230+ *(IntPtr*)((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = IntPtr.Zero;
231+ " ) ;
232+ continue ;
203233 }
204234 }
205235
@@ -245,12 +275,22 @@ bool createInstance
245275 for ( int i = 0 ; i < typeInfo . Members . Count ; i ++ )
246276 {
247277 var currentMember = typeInfo . Members [ i ] ;
248- if ( ! currentMember . IsValueType )
278+ if ( ! currentMember . IsValueType && ! currentMember . AsPointer )
249279 {
250280 builder . Append ( $@ "
251281 //set null marker { currentMember . MemberName }
252282 *((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = 0;
253283" ) ;
284+ continue ;
285+ }
286+
287+ if ( currentMember . AsPointer )
288+ {
289+ builder . Append ( $@ "
290+ //IntPtr must be a valid structure, so write it down. Member: { currentMember . MemberName }
291+ *(IntPtr*)((byte*)_start + { ( currentMember . IsRuntimeOffsetCalculated ? $ "{ currentType . Name } Helper.{ currentMember . MemberName } Offset" : $ "{ currentMember . Offset } ") } ) = IntPtr.Zero;
292+ " ) ;
293+ continue ;
254294 }
255295 }
256296
0 commit comments