freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype][master] [base] Return error if requested driver


From: Werner Lemberg (@wl)
Subject: [Git][freetype/freetype][master] [base] Return error if requested driver is not found.
Date: Wed, 18 Jan 2023 07:55:08 +0000

Werner Lemberg pushed to branch master at FreeType / FreeType

Commits:

  • 188019eb
    by Ben Wagner at 2023-01-18T08:37:51+01:00
    [base] Return error if requested driver is not found.
    
    In `open_face_from_buffer` it is possible that a driver is requested but
    FreeType was built without the requested module.  Return an error in this
    case to indicate that the request could not be satisfied, rather than trying
    all existing driver modules.
    
    * src/base/ftobjs.c (open_face_from_buffer): Return `FT_Err_Missing_Module`
    if a driver is specified but not found.
    

1 changed file:

Changes:

  • src/base/ftobjs.c
    ... ... @@ -1731,29 +1731,36 @@
    1731 1731
       {
    
    1732 1732
         FT_Open_Args  args;
    
    1733 1733
         FT_Error      error;
    
    1734
    -    FT_Stream     stream = NULL;
    
    1735 1734
         FT_Memory     memory = library->memory;
    
    1736 1735
     
    
    1737 1736
     
    
    1737
    +    args.flags = 0;
    
    1738
    +
    
    1739
    +    if ( driver_name )
    
    1740
    +    {
    
    1741
    +      args.driver = FT_Get_Module( library, driver_name );
    
    1742
    +      if ( !args.driver )
    
    1743
    +      {
    
    1744
    +        FT_FREE( base );
    
    1745
    +        return FT_THROW( Missing_Module );
    
    1746
    +      }
    
    1747
    +
    
    1748
    +      args.flags = args.flags | FT_OPEN_DRIVER;
    
    1749
    +    }
    
    1750
    +
    
    1738 1751
         /* `memory_stream_close` also frees the stream object. */
    
    1739 1752
         error = new_memory_stream( library,
    
    1740 1753
                                    base,
    
    1741 1754
                                    size,
    
    1742 1755
                                    memory_stream_close,
    
    1743
    -                               &stream );
    
    1756
    +                               &args.stream );
    
    1744 1757
         if ( error )
    
    1745 1758
         {
    
    1746 1759
           FT_FREE( base );
    
    1747 1760
           return error;
    
    1748 1761
         }
    
    1749 1762
     
    
    1750
    -    args.flags  = FT_OPEN_STREAM;
    
    1751
    -    args.stream = stream;
    
    1752
    -    if ( driver_name )
    
    1753
    -    {
    
    1754
    -      args.flags  = args.flags | FT_OPEN_DRIVER;
    
    1755
    -      args.driver = FT_Get_Module( library, driver_name );
    
    1756
    -    }
    
    1763
    +    args.flags |= FT_OPEN_STREAM;
    
    1757 1764
     
    
    1758 1765
     #ifdef FT_MACINTOSH
    
    1759 1766
         /* At this point, the face index has served its purpose;  */
    


  • reply via email to

    [Prev in Thread] Current Thread [Next in Thread]