tesseract  5.0.0-alpha-619-ge9db
emalloc.cpp
Go to the documentation of this file.
1 /**************************************************************************
2  * Filename: emalloc.cpp
3  * Purpose: Routines for trapping memory allocation errors.
4  * Author: Dan Johnson
5 **
6 ** (c) Copyright Hewlett-Packard Company, 1988.
7 ** Licensed under the Apache License, Version 2.0 (the "License");
8 ** you may not use this file except in compliance with the License.
9 ** You may obtain a copy of the License at
10 ** http://www.apache.org/licenses/LICENSE-2.0
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 ******************************************************************************/
17 
18 #include "emalloc.h"
19 #include <cstdlib>
20 #include "errcode.h" // for ASSERT_HOST
21 
31 void *Emalloc(int Size) {
32  ASSERT_HOST(Size > 0);
33  void* Buffer = malloc(Size);
34  ASSERT_HOST(Buffer != nullptr);
35  return Buffer;
36 }
37 
38 void *Erealloc(void *ptr, int size) {
39  ASSERT_HOST(size > 0 || (size == 0 && ptr != nullptr));
40  void* Buffer = realloc(ptr, size);
41  ASSERT_HOST(Buffer != nullptr || size == 0);
42  return Buffer;
43 }
44 
45 void Efree(void *ptr) {
46  ASSERT_HOST(ptr != nullptr);
47  free(ptr);
48 }
emalloc.h
Emalloc
void * Emalloc(int Size)
Definition: emalloc.cpp:31
ASSERT_HOST
#define ASSERT_HOST(x)
Definition: errcode.h:87
Erealloc
void * Erealloc(void *ptr, int size)
Definition: emalloc.cpp:38
Efree
void Efree(void *ptr)
Definition: emalloc.cpp:45
errcode.h