malloc: set errno on out-of-memory

This commit is contained in:
Wolfgang Thaller 2014-09-30 10:50:56 +02:00
parent 3911cb2fde
commit c9f832b2c9

View File

@ -27,11 +27,21 @@ void referenceMyMalloc() {}
void *_malloc_r(struct _reent *reent_ptr, size_t sz) void *_malloc_r(struct _reent *reent_ptr, size_t sz)
{ {
return NewPtr(sz); // TODO: set errno Ptr p = NewPtr(sz);
if(!p)
errno = ENOMEM;
return p;
} }
void *_calloc_r(struct _reent *reent_ptr, size_t sz, size_t sz2) void *_calloc_r(struct _reent *reent_ptr, size_t sz, size_t sz2)
{ {
return NewPtrClear(sz*sz2); // TODO: set errno Ptr p = NewPtrClear(sz*sz2);
if(!p)
errno = ENOMEM;
return p;
} }
void _free_r(struct _reent *reent_ptr, void *ptr) void _free_r(struct _reent *reent_ptr, void *ptr)
@ -44,7 +54,12 @@ void *_realloc_r(struct _reent *reent_ptr, void *ptr, size_t sz)
{ {
if(ptr == NULL) if(ptr == NULL)
{ {
return NewPtr(sz); Ptr p = NewPtr(sz);
if(!p)
errno = ENOMEM;
return p;
} }
else else
{ {