同步操作将从 Gitee 极速下载/Halide 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "ObjectInstanceRegistry.h"#include "Error.h"#include "Introspection.h"namespace Halide {namespace Internal {/* static */ObjectInstanceRegistry &ObjectInstanceRegistry::get_registry() {static ObjectInstanceRegistry *registry = new ObjectInstanceRegistry;return *registry;}/* static */void ObjectInstanceRegistry::register_instance(void *this_ptr, size_t size, Kind kind,void *subject_ptr, const void *introspection_helper) {ObjectInstanceRegistry ®istry = get_registry();std::lock_guard<std::mutex> lock(registry.mutex);uintptr_t key = (uintptr_t)this_ptr;internal_assert(registry.instances.find(key) == registry.instances.end());if (introspection_helper) {registry.instances[key] = InstanceInfo(size, kind, subject_ptr, true);Introspection::register_heap_object(this_ptr, size, introspection_helper);} else {registry.instances[key] = InstanceInfo(size, kind, subject_ptr, false);}}/* static */void ObjectInstanceRegistry::unregister_instance(void *this_ptr) {ObjectInstanceRegistry ®istry = get_registry();std::lock_guard<std::mutex> lock(registry.mutex);uintptr_t key = (uintptr_t)this_ptr;std::map<uintptr_t, InstanceInfo>::iterator it = registry.instances.find(key);internal_assert(it != registry.instances.end());if (it->second.registered_for_introspection) {Introspection::deregister_heap_object(this_ptr, it->second.size);}registry.instances.erase(it);}/* static */std::vector<void *> ObjectInstanceRegistry::instances_in_range(void *start, size_t size,Kind kind) {std::vector<void *> results;ObjectInstanceRegistry ®istry = get_registry();std::lock_guard<std::mutex> lock(registry.mutex);std::map<uintptr_t, InstanceInfo>::const_iterator it =registry.instances.lower_bound((uintptr_t)start);uintptr_t limit_ptr = ((uintptr_t)start) + size;while (it != registry.instances.end() && it->first < limit_ptr) {if (it->second.kind == kind) {results.push_back(it->second.subject_ptr);}if (it->first > (uintptr_t)start && it->second.size != 0) {// Skip over containers that we encloseit = registry.instances.lower_bound(it->first + it->second.size);} else {it++;}}return results;}} // namespace Internal} // namespace Halide
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。