Imported Upstream version 0.9.3
[platform/upstream/harfbuzz.git] / src / hb-old / harfbuzz-impl.c
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 }