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
32HB_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
51HB_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
71HB_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 */
80HB_INTERNAL HB_Error
81_hb_err (HB_Error code)
82{
83  return code;
84}
85