static gint64 gimp_object_real_get_memsize (GimpObject *object, gint64 *gui_size) { gint64 memsize = 0; if (! object->p->static_name) memsize += gimp_string_get_memsize (object->p->name); return memsize + gimp_g_object_get_memsize ((GObject *) object); }
static gint64 gimp_buffer_get_memsize (GimpObject *object, gint64 *gui_size) { GimpBuffer *buffer = GIMP_BUFFER (object); gint64 memsize = 0; memsize += gimp_gegl_buffer_get_memsize (buffer->buffer); memsize += gimp_g_object_get_memsize (G_OBJECT (buffer->color_profile)); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }
gint64 gimp_gegl_buffer_get_memsize (GeglBuffer *buffer) { if (buffer) { const Babl *format = gegl_buffer_get_format (buffer); return (babl_format_get_bytes_per_pixel (format) * gegl_buffer_get_width (buffer) * gegl_buffer_get_height (buffer) + gimp_g_object_get_memsize (G_OBJECT (buffer))); } return 0; }
gint64 gimp_gegl_pyramid_get_memsize (GeglBuffer *buffer) { if (buffer) { const Babl *format = gegl_buffer_get_format (buffer); /* The pyramid levels constitute a geometric sum with a ratio of 1/4. */ return ((gint64) babl_format_get_bytes_per_pixel (format) * (gint64) gegl_buffer_get_width (buffer) * (gint64) gegl_buffer_get_height (buffer) * 1.33 + gimp_g_object_get_memsize (G_OBJECT (buffer))); } return 0; }
static gint64 gimp_plug_in_procedure_get_memsize (GimpObject *object, gint64 *gui_size) { GimpPlugInProcedure *proc = GIMP_PLUG_IN_PROCEDURE (object); gint64 memsize = 0; GList *list; GSList *slist; memsize += gimp_g_object_get_memsize (G_OBJECT (proc->file)); memsize += gimp_string_get_memsize (proc->menu_label); for (list = proc->menu_paths; list; list = g_list_next (list)) memsize += sizeof (GList) + gimp_string_get_memsize (list->data); switch (proc->icon_type) { case GIMP_ICON_TYPE_ICON_NAME: case GIMP_ICON_TYPE_IMAGE_FILE: memsize += gimp_string_get_memsize ((const gchar *) proc->icon_data); break; case GIMP_ICON_TYPE_INLINE_PIXBUF: memsize += proc->icon_data_length; break; } memsize += gimp_string_get_memsize (proc->extensions); memsize += gimp_string_get_memsize (proc->prefixes); memsize += gimp_string_get_memsize (proc->magics); memsize += gimp_string_get_memsize (proc->mime_type); memsize += gimp_string_get_memsize (proc->thumb_loader); for (slist = proc->extensions_list; slist; slist = g_slist_next (slist)) memsize += sizeof (GSList) + gimp_string_get_memsize (slist->data); for (slist = proc->prefixes_list; slist; slist = g_slist_next (slist)) memsize += sizeof (GSList) + gimp_string_get_memsize (slist->data); for (slist = proc->magics_list; slist; slist = g_slist_next (slist)) memsize += sizeof (GSList) + gimp_string_get_memsize (slist->data); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }
static gint64 gimp_plug_in_def_get_memsize (GimpObject *object, gint64 *gui_size) { GimpPlugInDef *plug_in_def = GIMP_PLUG_IN_DEF (object); gint64 memsize = 0; memsize += gimp_g_object_get_memsize (G_OBJECT (plug_in_def->file)); memsize += gimp_string_get_memsize (plug_in_def->locale_domain_name); memsize += gimp_string_get_memsize (plug_in_def->locale_domain_path); memsize += gimp_string_get_memsize (plug_in_def->help_domain_name); memsize += gimp_string_get_memsize (plug_in_def->help_domain_uri); memsize += gimp_g_slist_get_memsize (plug_in_def->procedures, 0); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }
static gint64 gimp_image_undo_get_memsize (GimpObject *object, gint64 *gui_size) { GimpImageUndo *image_undo = GIMP_IMAGE_UNDO (object); gint64 memsize = 0; if (image_undo->colormap) memsize += GIMP_IMAGE_COLORMAP_SIZE; if (image_undo->metadata) memsize += gimp_g_object_get_memsize (G_OBJECT (image_undo->metadata)); memsize += gimp_object_get_memsize (GIMP_OBJECT (image_undo->grid), gui_size); memsize += gimp_string_get_memsize (image_undo->parasite_name); memsize += gimp_parasite_get_memsize (image_undo->parasite, gui_size); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }
static gint64 gimp_get_memsize (GimpObject *object, gint64 *gui_size) { Gimp *gimp = GIMP (object); gint64 memsize = 0; memsize += gimp_g_list_get_memsize (gimp->user_units, 0 /* FIXME */); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->parasites), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->paint_info_list), gui_size); memsize += gimp_g_object_get_memsize (G_OBJECT (gimp->module_db)); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->plug_in_manager), gui_size); memsize += gimp_g_list_get_memsize_foreach (gimp->filter_history, (GimpMemsizeFunc) gimp_object_get_memsize, gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->image_table), 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->item_table), 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->displays), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->global_buffer), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->named_buffers), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->fonts), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->brush_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->dynamics_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->mybrush_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->pattern_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->gradient_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->palette_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tool_preset_factory), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tag_cache), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->pdb), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->tool_info_list), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->standard_tool_info), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->documents), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->templates), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->image_new_last_template), gui_size); memsize += gimp_g_list_get_memsize (gimp->context_list, 0); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->default_context), gui_size); memsize += gimp_object_get_memsize (GIMP_OBJECT (gimp->user_context), gui_size); return memsize + GIMP_OBJECT_CLASS (parent_class)->get_memsize (object, gui_size); }