MCPcopy Create free account
hub / github.com/cisco/openh264 / WelsMalloc

Function WelsMalloc

codec/common/src/memory_align.cpp:64–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62}
63
64void* WelsMalloc (const uint32_t kuiSize, const char* kpTag, const uint32_t kiAlign) {
65 const uint32_t kiSizeOfVoidPointer = sizeof (void**);
66 const uint32_t kiSizeOfInt = sizeof (int32_t);
67 const uint32_t kiAlignedBytes = kiAlign - 1;
68 const uint32_t kiTrialRequestedSize = kuiSize + kiAlignedBytes + kiSizeOfVoidPointer + kiSizeOfInt;
69 const uint32_t kiActualRequestedSize = kiTrialRequestedSize;
70 const uint32_t kiPayloadSize = kuiSize;
71
72 uint8_t* pBuf = (uint8_t*) malloc (kiActualRequestedSize);
73 if (NULL == pBuf)
74 return NULL;
75
76#ifdef MEMORY_CHECK
77 if (fpMemChkPoint == NULL) {
78 fpMemChkPoint = fopen ("./enc_mem_check_point.txt", "at+");
79 nCountRequestNum = 0;
80 }
81
82 if (fpMemChkPoint != NULL) {
83 if (kpTag != NULL)
84 fprintf (fpMemChkPoint, "WelsMalloc(), 0x%x : actual uiSize:\t%d\tbytes, input uiSize: %d bytes, %d - %s\n",
85 (void*)pBuf, kiActualRequestedSize, kuiSize, nCountRequestNum++, kpTag);
86 else
87 fprintf (fpMemChkPoint, "WelsMalloc(), 0x%x : actual uiSize:\t%d\tbytes, input uiSize: %d bytes, %d \n", (void*)pBuf,
88 kiActualRequestedSize, kuiSize, nCountRequestNum++);
89 fflush (fpMemChkPoint);
90 }
91#endif
92 uint8_t* pAlignedBuffer;
93 pAlignedBuffer = pBuf + kiAlignedBytes + kiSizeOfVoidPointer + kiSizeOfInt;
94 pAlignedBuffer -= ((uintptr_t) pAlignedBuffer & kiAlignedBytes);
95 * ((void**) (pAlignedBuffer - kiSizeOfVoidPointer)) = pBuf;
96 * ((int32_t*) (pAlignedBuffer - (kiSizeOfVoidPointer + kiSizeOfInt))) = kiPayloadSize;
97
98 return pAlignedBuffer;
99}
100
101void WelsFree (void* pPointer, const char* kpTag) {
102 if (pPointer) {

Callers 3

WelsMalloczMethod · 0.70
WelsMallocMethod · 0.70
WelsMalloczFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected