static GtkPopoverMenuClass GetClassStruct(GLib.GType gtype, bool use_cache) { if (class_structs == null) { class_structs = new Dictionary <GLib.GType, GtkPopoverMenuClass> (); } if (use_cache && class_structs.ContainsKey(gtype)) { return(class_structs [gtype]); } else { IntPtr class_ptr = new IntPtr(gtype.GetClassPtr().ToInt64() + class_offset); GtkPopoverMenuClass class_struct = (GtkPopoverMenuClass)Marshal.PtrToStructure(class_ptr, typeof(GtkPopoverMenuClass)); if (use_cache) { class_structs.Add(gtype, class_struct); } return(class_struct); } }
static void OverrideClassStruct(GLib.GType gtype, GtkPopoverMenuClass class_struct) { IntPtr class_ptr = new IntPtr(gtype.GetClassPtr().ToInt64() + class_offset); Marshal.StructureToPtr(class_struct, class_ptr, false); }