Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright (C) 1998-2004  David Turner and Werner Lemberg
      3  * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
      4  * Copyright (C) 2007  Red Hat, Inc.
      5  *
      6  * This is part of HarfBuzz, an OpenType Layout engine library.
      7  *
      8  * Permission is hereby granted, without written agreement and without
      9  * license or royalty fees, to use, copy, modify, and distribute this
     10  * software and its documentation for any purpose, provided that the
     11  * above copyright notice and the following two paragraphs appear in
     12  * all copies of this software.
     13  *
     14  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
     15  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
     16  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
     17  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
     18  * DAMAGE.
     19  *
     20  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
     21  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
     22  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
     23  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
     24  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
     25  *
     26  * Red Hat Author(s): Behdad Esfahbod
     27  */
     28 
     29 #include "harfbuzz-impl.h"
     30 
     31 
     32 HB_INTERNAL HB_Pointer
     33 _hb_alloc(size_t     size,
     34 	  HB_Error  *perror )
     35 {
     36   HB_Error    error = (HB_Error)0;
     37   HB_Pointer  block = NULL;
     38 
     39   if ( size > 0 )
     40   {
     41     block = calloc( 1, size );
     42     if ( !block )
     43       error = ERR(HB_Err_Out_Of_Memory);
     44   }
     45 
     46   *perror = error;
     47   return block;
     48 }
     49 
     50 
     51 HB_INTERNAL HB_Pointer
     52 _hb_realloc(HB_Pointer  block,
     53 	    size_t      new_size,
     54 	    HB_Error   *perror )
     55 {
     56     HB_Pointer  block2 = NULL;
     57     HB_Error    error  = (HB_Error)0;
     58 
     59     block2 = realloc( block, new_size );
     60     if ( block2 == NULL && new_size != 0 )
     61         error = ERR(HB_Err_Out_Of_Memory);
     62 
     63     if ( !error )
     64         block = block2;
     65 
     66     *perror = error;
     67     return block;
     68 }
     69 
     70 
     71 HB_INTERNAL void
     72 _hb_free( HB_Pointer  block )
     73 {
     74   if ( block )
     75     free( block );
     76 }
     77 
     78 
     79 /* helper func to set a breakpoint on */
     80 HB_INTERNAL HB_Error
     81 _hb_err (HB_Error code)
     82 {
     83   return code;
     84 }
     85