dia r4156 - in trunk: . lib
- From: hans svn gnome org
- To: svn-commits-list gnome org
- Subject: dia r4156 - in trunk: . lib
- Date: Sun, 14 Dec 2008 20:18:46 +0000 (UTC)
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]