goffice r2144 - in trunk: . goffice/component goffice/graph



Author: jbrefort
Date: Sat Jul 12 09:36:35 2008
New Revision: 2144
URL: http://svn.gnome.org/viewvc/goffice?rev=2144&view=rev

Log:
2008-07-12  Jean Brefort  <jean brefort normalesup org>

	* goffice/component/go-component-factory.c:
	(go_component_type_service_read_xml): fix a memory leak.
	* goffice/graph/gog-chart-map-3d.c: (xyz_map_3D_to_view):
	fix projection code for non nul FoV.
	* goffice/graph/gog-chart.c: (gog_chart_3d_process): ditto.



Modified:
   trunk/ChangeLog
   trunk/goffice/component/go-component-factory.c
   trunk/goffice/graph/gog-chart-map-3d.c
   trunk/goffice/graph/gog-chart.c

Modified: trunk/goffice/component/go-component-factory.c
==============================================================================
--- trunk/goffice/component/go-component-factory.c	(original)
+++ trunk/goffice/component/go-component-factory.c	Sat Jul 12 09:36:35 2008
@@ -121,8 +121,7 @@
 					       (GDestroyNotify)
 					       go_mime_type_free);
 	for (ptr = tree->xmlChildrenNode; ptr != NULL; ptr = ptr->next)
-		if (0 == xmlStrcmp (ptr->name, "mime_type"))
-		{
+		if (0 == xmlStrcmp (ptr->name, "mime_type")) {
 			char *name = xmlGetProp (ptr, "name");
 			char *priority = xmlGetProp (ptr, "priority");
 			char *support_clipboard = xmlGetProp (ptr, "clipboard");
@@ -133,7 +132,7 @@
 			for (i = 4; i >= 0; i--)
 				if (!strcmp (priority, GOPriorityName[i]))
 					break;
-			g_free (priority);
+			xmlFree (priority);
 
 /* FIXME FIXME FIXME the code should take into account that a plugin might be deactivated ! */
 			if (mime_type == NULL) {
@@ -149,12 +148,14 @@
 				g_hash_table_replace (mime_types, name,
 						      mime_type);
 			} else if (i > mime_type->priority) {
-				g_free (name);
+				xmlFree (name);
 				g_free (mime_type->component_type_name);
 				mime_type->component_type_name =
 					g_strdup (service->id);
 				mime_type->priority = i;
 			}
+			if (support_clipboard)
+				xmlFree (support_clipboard);
 		}
 }
 

Modified: trunk/goffice/graph/gog-chart-map-3d.c
==============================================================================
--- trunk/goffice/graph/gog-chart-map-3d.c	(original)
+++ trunk/goffice/graph/gog-chart-map-3d.c	Sat Jul 12 09:36:35 2008
@@ -49,16 +49,16 @@
 	z = gog_axis_map_to_view (map->axis_map[2], z);
 	go_matrix3x3_transform (&box->mat, x, y, z, &x, &y, &z);
 	if (box->fov > 0.) {
-	    x *= (1. + y / box->r) / box->ratio;
-	    z *= (1. + y / box->r) / box->ratio;
+	    x /= (1. - y / box->r) * box->ratio;
+	    z /= (1. - y / box->r) * box->ratio;
 	} else {
 	    x /= box->ratio;
 	    z /= box->ratio;
 	}
 	if (u)
-	    *u = map->area.x + map->area.w / 2. * (1. + x / box->dx);
+	    *u = map->area.x + map->area.w / 2. * (1. + x / map->area.w);
 	if (v)
-	    *v = map->area.y + map->area.h / 2. * (1. - z / box->dz);
+	    *v = map->area.y + map->area.h / 2. * (1. - z / map->area.h);
 	if (w)
 	    *w = y;
 }

Modified: trunk/goffice/graph/gog-chart.c
==============================================================================
--- trunk/goffice/graph/gog-chart.c	(original)
+++ trunk/goffice/graph/gog-chart.c	Sat Jul 12 09:36:35 2008
@@ -857,24 +857,24 @@
 		if (d < box->r)
 			box->r = d;
 		/* also calculate the reduction factor we need to make things fit in the bbox */
-		xmax = fabs (o[0]) * (1. + o[1] / box->r);
-		zmax = fabs (o[2]) * (1. + o[1] / box->r);
-		d = fabs (x[0]) * (1. + x[1] / box->r);
+		xmax = fabs (o[0]) / (1. - o[1] / box->r);
+		zmax = fabs (o[2]) / (1. - o[1] / box->r);
+		d = fabs (x[0]) / (1. - x[1] / box->r);
 		if (d > xmax)
 			xmax = d;
-		d = fabs (x[2]) * (1. + x[1] / box->r);
+		d = fabs (x[2]) / (1. - x[1] / box->r);
 		if (d > zmax)
 			zmax = d;
-		d = fabs (y[0]) * (1. + y[1] / box->r);
+		d = fabs (y[0]) / (1. - y[1] / box->r);
 		if (d > xmax)
 			xmax = d;
-		d = fabs (y[2]) * (1. + y[1] / box->r);
+		d = fabs (y[2]) / (1. - y[1] / box->r);
 		if (d > zmax)
 			zmax = d;
-		d = fabs (z[0]) * (1. + z[1] / box->r);
+		d = fabs (z[0]) / (1. - z[1] / box->r);
 		if (d > xmax)
 			xmax = d;
-		d = fabs (z[2]) * (1. + z[1] / box->r);
+		d = fabs (z[2]) / (1. - z[1] / box->r);
 		if (d > zmax)
 			zmax = d;
 	} else {



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