[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freetype2] ewaldhew-wip 351d777 42/47: move cf2_font instance out into
From: |
Hew Yih Shiuan Ewald |
Subject: |
[freetype2] ewaldhew-wip 351d777 42/47: move cf2_font instance out into ps_decoder |
Date: |
Thu, 6 Jul 2017 04:49:39 -0400 (EDT) |
branch: ewaldhew-wip
commit 351d77704b6eb0f535d51564292ac625ec34ccc3
Author: Ewald Hew <address@hidden>
Commit: Ewald Hew <address@hidden>
move cf2_font instance out into ps_decoder
---
include/freetype/internal/psaux.h | 3 +++
src/cff/cffload.c | 6 ------
src/psaux/psdecode.c | 18 ++++++++++++++++++
src/psaux/psft.c | 10 +++++-----
4 files changed, 26 insertions(+), 11 deletions(-)
diff --git a/include/freetype/internal/psaux.h
b/include/freetype/internal/psaux.h
index 9c5e042..947a39c 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -629,6 +629,7 @@ FT_BEGIN_HEADER
CFF_Font cff;
CFF_SubFont current_subfont; /* for current glyph_index */
+ FT_Generic* cf2_instance;
FT_Pos glyph_width;
FT_Pos nominal_width;
@@ -974,6 +975,8 @@ FT_BEGIN_HEADER
FT_Bool seac;
+ FT_Generic cf2_instance;
+
} T1_DecoderRec;
/*************************************************************************/
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index 5e6839d..96034e7 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -2532,12 +2532,6 @@
FT_FREE( font->global_subrs );
FT_FREE( font->strings );
FT_FREE( font->string_pool );
-
- if ( font->cf2_instance.finalizer )
- {
- font->cf2_instance.finalizer( font->cf2_instance.data );
- FT_FREE( font->cf2_instance.data );
- }
}
diff --git a/src/psaux/psdecode.c b/src/psaux/psdecode.c
index 8884415..2ce7f3e 100644
--- a/src/psaux/psdecode.c
+++ b/src/psaux/psdecode.c
@@ -41,6 +41,7 @@
is_t1,
&ps_decoder->builder );
+ ps_decoder->cf2_instance = &t1_decoder->cf2_instance;
ps_decoder->psnames = t1_decoder->psnames;
ps_decoder->num_glyphs = t1_decoder->num_glyphs;
@@ -66,6 +67,7 @@
&ps_decoder->builder );
ps_decoder->cff = cff_decoder->cff;
+ ps_decoder->cf2_instance = &cff_decoder->cff->cf2_instance;
ps_decoder->current_subfont = cff_decoder->current_subfont;
ps_decoder->num_globals = cff_decoder->num_globals;
@@ -86,3 +88,19 @@
}
}
+
+ FT_LOCAL_DEF( void )
+ ps_decoder_done( PS_Decoder* decoder )
+ {
+ FT_Memory memory = decoder->builder.memory;
+
+ /*ps_builder_done( &decoder->builder ); */
+
+ if ( decoder->cf2_instance->finalizer )
+ {
+ decoder->cf2_instance->finalizer( decoder->cf2_instance->data );
+ FT_FREE( decoder->cf2_instance->data );
+ }
+
+ }
+
diff --git a/src/psaux/psft.c b/src/psaux/psft.c
index b0f4316..8ef7a50 100644
--- a/src/psaux/psft.c
+++ b/src/psaux/psft.c
@@ -318,19 +318,19 @@
memory = decoder->builder.memory;
/* CF2 data is saved here across glyphs */
- font = (CF2_Font)decoder->cff->cf2_instance.data;
+ font = (CF2_Font)decoder->cf2_instance->data;
/* on first glyph, allocate instance structure */
- if ( !decoder->cff->cf2_instance.data )
+ if ( !decoder->cf2_instance->data )
{
- decoder->cff->cf2_instance.finalizer =
+ decoder->cf2_instance->finalizer =
(FT_Generic_Finalizer)cf2_free_instance;
- if ( FT_ALLOC( decoder->cff->cf2_instance.data,
+ if ( FT_ALLOC( decoder->cf2_instance->data,
sizeof ( CF2_FontRec ) ) )
return FT_THROW( Out_Of_Memory );
- font = (CF2_Font)decoder->cff->cf2_instance.data;
+ font = (CF2_Font)decoder->cf2_instance->data;
font->memory = memory;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [freetype2] ewaldhew-wip 351d777 42/47: move cf2_font instance out into ps_decoder,
Hew Yih Shiuan Ewald <=