summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/src/psaux
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2022-04-05 21:27:03 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2022-04-05 21:27:03 +0000
commit37e731f0bd81249f8b43bada12adaa611b7a595b (patch)
tree99e477a2cd57a94782ae182b8c5e2c0024751356 /Build/source/libs/freetype2/freetype-src/src/psaux
parent7c200a413ce80d2d09a0dda338e9407bba0d3855 (diff)
freetype2 : revert
git-svn-id: svn://tug.org/texlive/trunk@62919 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/src/psaux')
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/module.mk2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psaux.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psauxerr.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psconv.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psconv.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c16
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c79
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/rules.mk2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.h2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c2
-rw-r--r--Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.h2
19 files changed, 81 insertions, 48 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.c b/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.c
index bd86129f7e2..0ad1760518e 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.c
@@ -4,7 +4,7 @@
*
* AFM parser (body).
*
- * Copyright (C) 2006-2022 by
+ * Copyright (C) 2006-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.h b/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.h
index eee49e36015..44b05b2cacb 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/afmparse.h
@@ -4,7 +4,7 @@
*
* AFM parser (specification).
*
- * Copyright (C) 2006-2022 by
+ * Copyright (C) 2006-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c b/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c
index 62be58f1684..29b68a8e4fb 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.c
@@ -4,7 +4,7 @@
*
* PostScript CFF (Type 2) decoding routines (body).
*
- * Copyright (C) 2017-2022 by
+ * Copyright (C) 2017-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.h b/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.h
index a9f6761824b..b1314ed1c1e 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/cffdecode.h
@@ -4,7 +4,7 @@
*
* PostScript CFF (Type 2) decoding routines (specification).
*
- * Copyright (C) 2017-2022 by
+ * Copyright (C) 2017-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/module.mk b/Build/source/libs/freetype2/freetype-src/src/psaux/module.mk
index e52e9879684..06f7e72c1c9 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/module.mk
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/module.mk
@@ -3,7 +3,7 @@
#
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2021 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psaux.c b/Build/source/libs/freetype2/freetype-src/src/psaux/psaux.c
index 2ac7949479c..2960c8b696b 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psaux.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psaux.c
@@ -4,7 +4,7 @@
*
* FreeType auxiliary PostScript driver component (body only).
*
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxerr.h b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxerr.h
index 1504b34ee56..e8ee29166cf 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxerr.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxerr.h
@@ -4,7 +4,7 @@
*
* PS auxiliary module error codes (specification only).
*
- * Copyright (C) 2001-2022 by
+ * Copyright (C) 2001-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.c b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.c
index 113490abcd2..52da23365ed 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.c
@@ -4,7 +4,7 @@
*
* FreeType auxiliary PostScript module implementation (body).
*
- * Copyright (C) 2000-2022 by
+ * Copyright (C) 2000-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.h b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.h
index 2d508edc2ac..e3e80632206 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psauxmod.h
@@ -4,7 +4,7 @@
*
* FreeType auxiliary PostScript module implementation (specification).
*
- * Copyright (C) 2000-2022 by
+ * Copyright (C) 2000-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.c b/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.c
index ff186643dad..c28d65df297 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.c
@@ -4,7 +4,7 @@
*
* Some convenience conversions (body).
*
- * Copyright (C) 2006-2022 by
+ * Copyright (C) 2006-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.h b/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.h
index 650d7c93b27..cd91a7bb563 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psconv.h
@@ -4,7 +4,7 @@
*
* Some convenience conversions (specification).
*
- * Copyright (C) 2006-2022 by
+ * Copyright (C) 2006-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c b/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c
index 6c640eebd5a..c550533a0fc 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psintrp.c
@@ -1900,8 +1900,7 @@
/* WeightVector */
{
FT_UInt idx;
- PS_Blend blend = decoder->blend;
- FT_UInt len_buildchar = decoder->len_buildchar;
+ PS_Blend blend = decoder->blend;
if ( arg_cnt != 1 || !blend )
@@ -1909,15 +1908,14 @@
idx = (FT_UInt)cf2_stack_popInt( opStack );
- if ( len_buildchar < blend->num_designs ||
- len_buildchar - blend->num_designs < idx )
+ if ( idx + blend->num_designs >
+ decoder->len_buildchar )
goto Unexpected_OtherSubr;
- if ( decoder->buildchar && blend->weight_vector )
- ft_memcpy( &decoder->buildchar[idx],
- blend->weight_vector,
- blend->num_designs *
- sizeof ( blend->weight_vector[0] ) );
+ ft_memcpy( &decoder->buildchar[idx],
+ blend->weight_vector,
+ blend->num_designs *
+ sizeof ( blend->weight_vector[0] ) );
}
break;
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c b/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c
index 6ab503806b2..30f501916a6 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.c
@@ -4,7 +4,7 @@
*
* Auxiliary functions for PostScript fonts (body).
*
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
@@ -99,31 +99,45 @@
}
+ static void
+ shift_elements( PS_Table table,
+ FT_Byte* old_base )
+ {
+ FT_PtrDist delta = table->block - old_base;
+ FT_Byte** offset = table->elements;
+ FT_Byte** limit = offset + table->max_elems;
+
+
+ for ( ; offset < limit; offset++ )
+ {
+ if ( offset[0] )
+ offset[0] += delta;
+ }
+ }
+
+
static FT_Error
- ps_table_realloc( PS_Table table,
- FT_Offset new_size )
+ reallocate_t1_table( PS_Table table,
+ FT_Offset new_size )
{
FT_Memory memory = table->memory;
FT_Byte* old_base = table->block;
FT_Error error;
- /* (re)allocate the base block */
- if ( FT_REALLOC( table->block, table->capacity, new_size ) )
+ /* allocate new base block */
+ if ( FT_ALLOC( table->block, new_size ) )
+ {
+ table->block = old_base;
return error;
+ }
- /* rebase offsets if necessary */
- if ( old_base && table->block != old_base )
+ /* copy elements and shift offsets */
+ if ( old_base )
{
- FT_Byte** offset = table->elements;
- FT_Byte** limit = offset + table->max_elems;
-
-
- for ( ; offset < limit; offset++ )
- {
- if ( *offset )
- *offset = table->block + ( *offset - old_base );
- }
+ FT_MEM_COPY( table->block, old_base, table->capacity );
+ shift_elements( table, old_base );
+ FT_FREE( old_base );
}
table->capacity = new_size;
@@ -190,7 +204,7 @@
new_size = FT_PAD_CEIL( new_size, 1024 );
}
- error = ps_table_realloc( table, new_size );
+ error = reallocate_t1_table( table, new_size );
if ( error )
return error;
@@ -220,12 +234,32 @@
* @InOut:
* table ::
* The target table.
+ *
+ * @Note:
+ * This function does NOT release the heap's memory block. It is up
+ * to the caller to clean it, or reference it in its own structures.
*/
FT_LOCAL_DEF( void )
ps_table_done( PS_Table table )
{
- /* no problem if shrinking fails */
- ps_table_realloc( table, table->cursor );
+ FT_Memory memory = table->memory;
+ FT_Error error;
+ FT_Byte* old_base = table->block;
+
+
+ /* should never fail, because rec.cursor <= rec.size */
+ if ( !old_base )
+ return;
+
+ if ( FT_QALLOC( table->block, table->cursor ) )
+ return;
+ FT_MEM_COPY( table->block, old_base, table->cursor );
+ shift_elements( table, old_base );
+
+ table->capacity = table->cursor;
+ FT_FREE( old_base );
+
+ FT_UNUSED( error );
}
@@ -1064,6 +1098,7 @@
{
FT_Byte* q = (FT_Byte*)objects[idx] + field->offset;
FT_Long val;
+ FT_String* string = NULL;
skip_spaces( &cur, limit );
@@ -1113,9 +1148,8 @@
case T1_FIELD_TYPE_STRING:
case T1_FIELD_TYPE_KEY:
{
- FT_Memory memory = parser->memory;
- FT_UInt len = (FT_UInt)( limit - cur );
- FT_String* string = NULL;
+ FT_Memory memory = parser->memory;
+ FT_UInt len = (FT_UInt)( limit - cur );
if ( cur >= limit )
@@ -1156,6 +1190,7 @@
FT_TRACE0(( "ps_parser_load_field: overwriting field %s\n",
field->ident ));
FT_FREE( *(FT_String**)q );
+ *(FT_String**)q = NULL;
}
if ( FT_QALLOC( string, len + 1 ) )
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.h b/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.h
index f01d4bd503a..99d16959a73 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/psobjs.h
@@ -4,7 +4,7 @@
*
* Auxiliary functions for PostScript fonts (specification).
*
- * Copyright (C) 1996-2022 by
+ * Copyright (C) 1996-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/rules.mk b/Build/source/libs/freetype2/freetype-src/src/psaux/rules.mk
index d20ff3e6391..05439120dd2 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/rules.mk
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/rules.mk
@@ -3,7 +3,7 @@
#
-# Copyright (C) 1996-2022 by
+# Copyright (C) 1996-2021 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.c b/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.c
index f297ce75e1f..3e7c577a18c 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.c
@@ -4,7 +4,7 @@
*
* Type 1 character map support (body).
*
- * Copyright (C) 2002-2022 by
+ * Copyright (C) 2002-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.h b/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.h
index 460d91f5904..8f69600ca40 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/t1cmap.h
@@ -4,7 +4,7 @@
*
* Type 1 character map support (specification).
*
- * Copyright (C) 2002-2022 by
+ * Copyright (C) 2002-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c b/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c
index 1cdf436fa72..7e65bde6322 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.c
@@ -4,7 +4,7 @@
*
* PostScript Type 1 decoding routines (body).
*
- * Copyright (C) 2000-2022 by
+ * Copyright (C) 2000-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,
diff --git a/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.h b/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.h
index d60d61c9043..eea9d34b042 100644
--- a/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.h
+++ b/Build/source/libs/freetype2/freetype-src/src/psaux/t1decode.h
@@ -4,7 +4,7 @@
*
* PostScript Type 1 decoding routines (specification).
*
- * Copyright (C) 2000-2022 by
+ * Copyright (C) 2000-2021 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used,