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