Index: src/raster/rastpic.c |
diff --git a/src/raster/rastpic.c b/src/raster/rastpic.c |
index 2883e3fde4c458ee9c23d4a890bc7e4295650e19..5e9f7cc9c4e3365d49308245d977902d70a6ddb7 100644 |
--- a/src/raster/rastpic.c |
+++ b/src/raster/rastpic.c |
@@ -4,7 +4,7 @@ |
/* */ |
/* The FreeType position independent code services for raster module. */ |
/* */ |
-/* Copyright 2009, 2010 by */ |
+/* Copyright 2009, 2010, 2012, 2013 by */ |
/* Oran Agra and Mickey Gabel. */ |
/* */ |
/* This file is part of the FreeType project, and may only be used, */ |
@@ -22,22 +22,26 @@ |
#include "rastpic.h" |
#include "rasterrs.h" |
+ |
#ifdef FT_CONFIG_OPTION_PIC |
/* forward declaration of PIC init functions from ftraster.c */ |
void |
FT_Init_Class_ft_standard_raster( FT_Raster_Funcs* funcs ); |
+ |
void |
ft_raster1_renderer_class_pic_free( FT_Library library ) |
{ |
FT_PIC_Container* pic_container = &library->pic_container; |
- FT_Memory memory = library->memory; |
+ FT_Memory memory = library->memory; |
if ( pic_container->raster ) |
{ |
- RasterPIC* container = (RasterPIC*)pic_container->raster; |
+ RasterPIC* container = (RasterPIC*)pic_container->raster; |
+ |
+ |
if ( --container->ref_count ) |
return; |
FT_FREE( container ); |
@@ -49,14 +53,14 @@ |
FT_Error |
ft_raster1_renderer_class_pic_init( FT_Library library ) |
{ |
- FT_PIC_Container* pic_container = &library->pic_container; |
- FT_Error error = Raster_Err_Ok; |
- RasterPIC* container; |
- FT_Memory memory = library->memory; |
+ FT_PIC_Container* pic_container = &library->pic_container; |
+ FT_Error error = FT_Err_Ok; |
+ RasterPIC* container = NULL; |
+ FT_Memory memory = library->memory; |
- /* since this function also serve raster5 renderer, |
- it implements reference counting */ |
+ /* since this function also serves raster5 renderer, */ |
+ /* it implements reference counting */ |
if ( pic_container->raster ) |
{ |
((RasterPIC*)pic_container->raster)->ref_count++; |
@@ -68,16 +72,17 @@ |
return error; |
FT_MEM_SET( container, 0, sizeof ( *container ) ); |
pic_container->raster = container; |
+ |
container->ref_count = 1; |
- /* initialize pointer table - this is how the module usually expects this data */ |
+ /* initialize pointer table - */ |
+ /* this is how the module usually expects this data */ |
FT_Init_Class_ft_standard_raster( &container->ft_standard_raster ); |
-/*Exit:*/ |
- if( error ) |
- ft_raster1_renderer_class_pic_free( library ); |
+ |
return error; |
} |
+ |
/* re-route these init and free functions to the above functions */ |
FT_Error |
ft_raster5_renderer_class_pic_init( FT_Library library ) |
@@ -85,6 +90,7 @@ |
return ft_raster1_renderer_class_pic_init( library ); |
} |
+ |
void |
ft_raster5_renderer_class_pic_free( FT_Library library ) |
{ |