shithub: freetype+ttf2subf

Download patch

ref: 3066f5f53da6327ef9194eecbcc03370649704d2
parent: 748e3681734eb40952f2eabb61ae90f5f7e7b2a2
author: Werner Lemberg <[email protected]>
date: Wed Oct 21 10:05:41 EDT 2015

Revert erroneously applied commits.

git/fs: mount .git/fs: mount/attach disallowed
--- a/src/autofit/afranges.c
+++ b/src/autofit/afranges.c
@@ -179,34 +179,6 @@
   };
 
 
-  const AF_Script_UniRangeRec  af_khmr_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x1780UL,  0x17FFUL ),  /* Khmer */
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-  const AF_Script_UniRangeRec  af_khmr_nonbase_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x17B7UL,  0x17BDUL ),
-    AF_UNIRANGE_REC(  0x17C6UL,  0x17C6UL ),
-    AF_UNIRANGE_REC(  0x17C9UL,  0x17D3UL ),
-    AF_UNIRANGE_REC(  0x17DDUL,  0x17DDUL ),
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-
-  const AF_Script_UniRangeRec  af_khms_uniranges[] =
-  {
-    AF_UNIRANGE_REC(  0x19E0UL,  0x19FFUL ),  /* Khmer Symbols */
-    AF_UNIRANGE_REC(       0UL,       0UL )
-  };
-
-  const AF_Script_UniRangeRec  af_khms_nonbase_uniranges[] =
-  {
-    AF_UNIRANGE_REC( 0UL, 0UL )
-  };
-
-
   const AF_Script_UniRangeRec  af_lao_uniranges[] =
   {
     AF_UNIRANGE_REC(  0x0E80UL,  0x0EFFUL ),  /* Lao */
--- a/src/tools/ftfuzzer/ftfuzzer.cc
+++ b/src/tools/ftfuzzer/ftfuzzer.cc
@@ -3,9 +3,6 @@
 #  error "a C++11 compiler is needed"
 #endif
 
-#include <archive.h>
-#include <archive_entry.h>
-
 #include <assert.h>
 #include <stdint.h>
 
@@ -48,60 +45,7 @@
 
   FT_Global  global_ft;
 
-  static int
-  archive_read_entry_data( struct archive *ar, vector<FT_Byte> *vw )
-  {
-    int r;
-    const FT_Byte *buff;
-    size_t size;
-    int64_t offset;
 
-    for (;;) {
-      r = archive_read_data_block( ar, reinterpret_cast<const void**>(&buff), &size, &offset );
-      if (r == ARCHIVE_EOF)
-        return (ARCHIVE_OK);
-      if (r != ARCHIVE_OK)
-        return (r);
-      vw->insert(vw->end(), buff, buff + size);
-    }
- }
-
-  static vector<vector<FT_Byte>>
-  parse_data( const uint8_t*  data,
-              size_t          size )
-  {
-    struct archive_entry *entry;
-    int r;
-    vector<vector<FT_Byte>> files;
-
-    unique_ptr<struct archive, decltype ( archive_read_free )*> a( archive_read_new(), archive_read_free );
-    archive_read_support_format_tar(a.get());
-
-    // The need for the const_cast was removed with libarchive be4d4ddcfca77f6e43753156eaa919f4d25ed903
-    if (!(r = archive_read_open_memory( a.get(), const_cast<void*>(static_cast<const void*>(data)), size )))
-    {
-      unique_ptr<struct archive, decltype ( archive_read_close )*> a_open( a.get(), archive_read_close );
-      for (;;) {
-        r = archive_read_next_header( a_open.get(), &entry );
-        if (r == ARCHIVE_EOF)
-          break;
-        if (r != ARCHIVE_OK)
-          break;
-        vector<FT_Byte> entry_data;
-        r = archive_read_entry_data( a.get(), &entry_data );
-        if (r != ARCHIVE_OK)
-          break;
-        files.push_back( move( entry_data ) );
-      }
-    }
-
-    if (files.size() == 0)
-      files.emplace_back(data, data + size);
-
-    return files;
-  }
-
-
   static void
   setIntermediateAxis( FT_Face  face )
   {
@@ -141,8 +85,6 @@
 
     long  size = (long)size_;
 
-    const vector<vector<FT_Byte>>& files = parse_data( data, size );
-
     FT_Face         face;
     FT_Int32        load_flags  = FT_LOAD_DEFAULT;
 #if 0
@@ -157,7 +99,7 @@
     // more than a single font.
 
     // get number of faces
-    if ( FT_New_Memory_Face( library, files[0].data(), files[0].size(), -1, &face ) )
+    if ( FT_New_Memory_Face( library, data, size, -1, &face ) )
       return 0;
     long  num_faces = face->num_faces;
     FT_Done_Face( face );
@@ -169,8 +111,8 @@
     {
       // get number of instances
       if ( FT_New_Memory_Face( library,
-                               files[0].data(),
-                               files[0].size(),
+                               data,
+                               size,
                                -( face_index + 1 ),
                                &face ) )
         continue;
@@ -183,22 +125,11 @@
             instance_index++ )
       {
         if ( FT_New_Memory_Face( library,
-                                 files[0].data(),
-                                 files[0].size(),
+                                 data,
+                                 size,
                                  ( instance_index << 16 ) + face_index,
                                  &face ) )
           continue;
-
-        for ( long files_index = 1;
-              files_index < files.size();
-              files_index++)
-        {
-          FT_Open_Args open_args = {};
-          open_args.flags = FT_OPEN_MEMORY;
-          open_args.memory_base = files[files_index].data();
-          open_args.memory_size = files[files_index].size();
-          FT_Attach_Stream( face, &open_args );
-        }
 
         // loop over all bitmap stroke sizes
         // and an arbitrary size for outlines