同步操作将从 Gitee 极速下载/Halide 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "HalideRuntime.h"#include "runtime_internal.h"extern "C" {extern void *malloc(size_t);extern void free(void *);// An implementation of aligned_alloc() that is layered on top of malloc()/free().WEAK_INLINE void *halide_internal_aligned_alloc(size_t alignment, size_t size) {// Alignment must be a power of two and >= sizeof(void*)halide_debug_assert(nullptr, is_power_of_two(alignment) && alignment >= sizeof(void *));// Allocate enough space for aligning the pointer we return.//// Always round allocations up to alignment size,// so that all allocators follow the behavior of aligned_alloc() and// return aligned pointer *and* aligned length.const size_t aligned_size = align_up(size + alignment, alignment);void *orig = ::malloc(aligned_size);if (orig == nullptr) {// Will result in a failed assertion and a call to halide_errorreturn nullptr;}// malloc() and friends must return a pointer aligned to at least// alignof(std::max_align_t); we can't reasonably check that in// the runtime, but we can realistically assume it's at least// 8-aligned.halide_debug_assert(nullptr, (((uintptr_t)orig) % 8) == 0);// We want to store the original pointer prior to the pointer we return.void *ptr = (void *)align_up((uintptr_t)orig + sizeof(void *), alignment);((void **)ptr)[-1] = orig;return ptr;}WEAK_INLINE void halide_internal_aligned_free(void *ptr) {::free(((void **)ptr)[-1]);}} // extern "C"
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。