| 123 | } |
| 124 | |
| 125 | pub fn cached_function_guid<A: Architecture, M: FunctionMutability>( |
| 126 | function: &BNFunction, |
| 127 | llil: &LowLevelILFunction<A, M, NonSSA<RegularNonSSA>>, |
| 128 | ) -> FunctionGUID { |
| 129 | let view = function.view(); |
| 130 | let view_id = ViewID::from(view); |
| 131 | let guid_cache = GUID_CACHE.get_or_init(Default::default); |
| 132 | match guid_cache.get(&view_id) { |
| 133 | Some(cache) => cache.function_guid(function, llil), |
| 134 | None => { |
| 135 | let cache = GUIDCache::default(); |
| 136 | let guid = cache.function_guid(function, llil); |
| 137 | guid_cache.insert(view_id, cache); |
| 138 | guid |
| 139 | } |
| 140 | } |
| 141 | } |
| 142 | |
| 143 | pub fn try_cached_function_guid(function: &BNFunction) -> Option<FunctionGUID> { |
| 144 | let view = function.view(); |