dia r4156 - in trunk: . lib



Author: hans
Date: Sun Dec 14 20:18:46 2008
New Revision: 4156
URL: http://svn.gnome.org/viewvc/dia?rev=4156&view=rev

Log:
2008-12-14  Hans Breuer  <hans breuer org>

	* lib/textline.[ch] : removed obsolete RenderCache stuff while 
	investigating bug #562574



Modified:
   trunk/ChangeLog
   trunk/lib/textline.c
   trunk/lib/textline.h

Modified: trunk/lib/textline.c
==============================================================================
--- trunk/lib/textline.c	(original)
+++ trunk/lib/textline.c	Sun Dec 14 20:18:46 2008
@@ -28,9 +28,6 @@
 #include "propinternals.h"
 #include "text.h"
 #include "message.h"
-#include "diarenderer.h"
-#include "diagramdata.h"
-#include "objchange.h"
 #include "textline.h"
 
 static void text_line_dirty_cache(TextLine *text_line);
@@ -182,52 +179,6 @@
   return text_line->descent;
 }
 
-/** Set some cache data for the renderer object.  This data will get
- * freed if this textline is ever changed or viewed at a different size.
- * Any cache already set, regardless of identity, will be freed.
- * @param text_line
- * @param renderer
- * @param free_func A function for freeing the data.
- * @param scale The zooming scale factor (as defined by the renderer) used
- * to make these data.  If scale independent, just use 0.0.
- * @param data
- */
-void
-text_line_set_renderer_cache(TextLine *text_line, DiaRenderer *renderer,
-			     RendererCacheFreeFunc free_func, real scale,
-			     gpointer data) {
-  RendererCache *cache;
-  if (text_line->renderer_cache != NULL) {
-    (*text_line->renderer_cache->free_func)(text_line->renderer_cache);
-    text_line->renderer_cache = NULL;
-  }
-  cache = g_new(RendererCache, 1);
-  cache->renderer = renderer;
-  cache->free_func = free_func;
-  cache->scale = scale;
-  cache->data = data;
-}
-
-/** Get any renderer cache data that might be around.
- * @param text_line
- * @param renderer
- * @param scale The scale we want text rendered at, or 0.0 if this renderer
- * is scale independent.
- * @returns Previously cached data (which shouldn't be freed) for the
- * same text rendering.
- */
-gpointer
-text_line_get_renderer_cache(TextLine *text_line, DiaRenderer *renderer,
-			     real scale) {
-  if (text_line->clean && text_line->renderer_cache != NULL &&
-      text_line->renderer_cache->renderer == renderer &&
-      fabs(text_line->renderer_cache->scale - scale) < 0.0000001) {
-    return text_line->renderer_cache->data;
-  } else {
-    return NULL;
-  }
-}
-
 /** Return the amount this text line would need to be shifted in order to
  * implement the given alignment.
  * @param text_line a line of text
@@ -268,7 +219,7 @@
 
     for (; runs != NULL; runs = g_slist_next(runs)) {
       PangoGlyphItem *run = (PangoGlyphItem *) runs->data;
-	  
+
       g_free(run->glyphs->glyphs);
       g_free(run->glyphs);
     }
@@ -287,14 +238,14 @@
       text_line->height != text_line->height_cache) {
     int n_offsets;
 
+    if (text_line->font != text_line->font_cache)
+      if (text_line->font_cache != NULL)
+        g_warning("leak?");
+
     if (text_line->offsets != NULL) {
       g_free(text_line->offsets);
       text_line->offsets = NULL;
     }
-    if (text_line->renderer_cache != NULL) {
-      (*text_line->renderer_cache->free_func)(text_line->renderer_cache);
-      text_line->renderer_cache = NULL;
-    }
     clear_layout_offset (text_line);
 
     if (text_line->chars == NULL ||
@@ -313,7 +264,7 @@
       text_line->offsets = 
 	dia_font_get_sizes(text_line->chars, text_line->font, text_line->height,
 			   &text_line->width, &text_line->ascent, 
-			   &text_line->descent, &n_offsets,
+			   &text_line->descent, &n_offsets, 
 			   &text_line->layout_offsets);
     }
     text_line->clean = TRUE;

Modified: trunk/lib/textline.h
==============================================================================
--- trunk/lib/textline.h	(original)
+++ trunk/lib/textline.h	Sun Dec 14 20:18:46 2008
@@ -27,16 +27,6 @@
 #include <glib.h>
 #include "diatypes.h"
 #include "properties.h"
-typedef struct _RendererCache RendererCache;
-
-typedef void (*RendererCacheFreeFunc) (gpointer data);
-
-struct _RendererCache {
-  DiaRenderer *renderer;
-  RendererCacheFreeFunc free_func;
-  real scale;
-  gpointer data;
-};
 
 struct _TextLine {
   /* don't change these values directly, use the text_line_set* functions */
@@ -67,9 +57,6 @@
   /** Offsets of the individual glyphs in the string.  */
   real *offsets;
   PangoLayoutLine *layout_offsets;
-
-  /** Renderers can keep their private cache items in here */
-  RendererCache *renderer_cache;
 };
 
 TextLine *text_line_new(const gchar *string, DiaFont *font, real height);
@@ -85,11 +72,6 @@
 real text_line_get_width(TextLine *text);
 real text_line_get_ascent(TextLine *text);
 real text_line_get_descent(TextLine *text);
-void text_line_set_renderer_cache(TextLine *text_line, DiaRenderer *renderer,
-				  RendererCacheFreeFunc free_func, real scale,
-				  gpointer data);
-gpointer text_line_get_renderer_cache(TextLine *text_line,
-				      DiaRenderer *renderer, real scale);
 
 void text_line_adjust_glyphs(TextLine *line,
 			     PangoGlyphString *glyphs,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]