tesseract 4.1.1
Loading...
Searching...
No Matches
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
31void *Emalloc(int Size) {
32 ASSERT_HOST(Size > 0);
33 void* Buffer = malloc(Size);
34 ASSERT_HOST(Buffer != nullptr);
35 return Buffer;
36}
37
38void *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
45void Efree(void *ptr) {
46 ASSERT_HOST(ptr != nullptr);
47 free(ptr);
48}
#define ASSERT_HOST(x)
Definition: errcode.h:88
void * Erealloc(void *ptr, int size)
Definition: emalloc.cpp:38
void * Emalloc(int Size)
Definition: emalloc.cpp:31
void Efree(void *ptr)
Definition: emalloc.cpp:45