diff options
Diffstat (limited to 'apps/plugins/doom/z_zone.c')
-rw-r--r-- | apps/plugins/doom/z_zone.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/apps/plugins/doom/z_zone.c b/apps/plugins/doom/z_zone.c index ed3a6918d9..cc3d11abc4 100644 --- a/apps/plugins/doom/z_zone.c +++ b/apps/plugins/doom/z_zone.c | |||
@@ -630,9 +630,25 @@ void *(Z_Calloc)(size_t n1, size_t n2, int tag, void **user | |||
630 | , const char *file, int line | 630 | , const char *file, int line |
631 | #endif | 631 | #endif |
632 | ) | 632 | ) |
633 | { | 633 | { void* s; |
634 | return | 634 | |
635 | (n1*=n2) ? memset((Z_Malloc)(n1, tag, user DA(file, line)), 0, n1) : NULL; | 635 | /* The ARM version of memset doesn't correctly return a pointer |
636 | to the memory address being set, so we have to do this the long | ||
637 | way... Revert this when the ARM memset is fixed. | ||
638 | |||
639 | */ | ||
640 | |||
641 | #if 1 | ||
642 | if (n1*=n2) { | ||
643 | s = (Z_Malloc)(n1,tag,user DA(file,line)); | ||
644 | memset(s, 0, n1); | ||
645 | return s; | ||
646 | } else { | ||
647 | return NULL; | ||
648 | } | ||
649 | #else | ||
650 | return (n1*=n2) ? memset((Z_Malloc)(n1, tag, user DA(file, line)), 0, n1) : NULL; | ||
651 | #endif | ||
636 | } | 652 | } |
637 | 653 | ||
638 | char *(Z_Strdup)(const char *s, int tag, void **user | 654 | char *(Z_Strdup)(const char *s, int tag, void **user |