linux/tools/perf/util/wrapper.c
<<
>>
Prefs
   1/*
   2 * Various trivial helper wrappers around standard functions
   3 */
   4#include "cache.h"
   5
   6/*
   7 * There's no pack memory to release - but stay close to the Git
   8 * version so wrap this away:
   9 */
  10static inline void release_pack_memory(size_t size __maybe_unused,
  11                                       int flag __maybe_unused)
  12{
  13}
  14
  15char *xstrdup(const char *str)
  16{
  17        char *ret = strdup(str);
  18        if (!ret) {
  19                release_pack_memory(strlen(str) + 1, -1);
  20                ret = strdup(str);
  21                if (!ret)
  22                        die("Out of memory, strdup failed");
  23        }
  24        return ret;
  25}
  26
  27void *xrealloc(void *ptr, size_t size)
  28{
  29        void *ret = realloc(ptr, size);
  30        if (!ret && !size)
  31                ret = realloc(ptr, 1);
  32        if (!ret) {
  33                release_pack_memory(size, -1);
  34                ret = realloc(ptr, size);
  35                if (!ret && !size)
  36                        ret = realloc(ptr, 1);
  37                if (!ret)
  38                        die("Out of memory, realloc failed");
  39        }
  40        return ret;
  41}
  42