( self, ctxt: ctypes.c_void_p, original_key: ctypes.c_char_p, original_conflict: core.BNAnalysisMergeConflictHandle, result_kvs: core.BNKeyValueStoreHandle, new_keys: ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), new_conflicts: ctypes.POINTER(core.BNAnalysisMergeConflictHandle), new_count: ctypes.POINTER(ctypes.c_size_t) )
| 296 | return False |
| 297 | |
| 298 | def _split( |
| 299 | self, |
| 300 | ctxt: ctypes.c_void_p, |
| 301 | original_key: ctypes.c_char_p, |
| 302 | original_conflict: core.BNAnalysisMergeConflictHandle, |
| 303 | result_kvs: core.BNKeyValueStoreHandle, |
| 304 | new_keys: ctypes.POINTER(ctypes.POINTER(ctypes.c_char_p)), |
| 305 | new_conflicts: ctypes.POINTER(core.BNAnalysisMergeConflictHandle), |
| 306 | new_count: ctypes.POINTER(ctypes.c_size_t) |
| 307 | ) -> bool: |
| 308 | try: |
| 309 | py_original_conflict = MergeConflict(handle=original_conflict) |
| 310 | py_result_kvs = KeyValueStore(handle=ctypes.cast(result_kvs, core.BNKeyValueStoreHandle)) |
| 311 | result = self.split(core.pyNativeStr(original_key), py_original_conflict, py_result_kvs) |
| 312 | |
| 313 | if result is None: |
| 314 | return False |
| 315 | |
| 316 | new_count[0] = ctypes.c_size_t(len(result)) |
| 317 | new_keys[0] = (ctypes.c_char_p * len(result))() |
| 318 | new_conflicts[0] = (core.BNAnalysisMergeConflictHandle * len(result))() |
| 319 | |
| 320 | self._split_keys = [] |
| 321 | self._split_conflicts = [] |
| 322 | |
| 323 | for (i, (key, conflict)) in enumerate(result): |
| 324 | self._split_keys.append(key) |
| 325 | self._split_conflicts.append(conflict) |
| 326 | |
| 327 | new_keys[0][i] = core.cstr(self._split_keys[-1]) |
| 328 | new_conflicts[0][i] = self._split_conflicts[-1]._handle |
| 329 | |
| 330 | return True |
| 331 | except: |
| 332 | traceback.print_exc(file=sys.stderr) |
| 333 | return False |
| 334 | |
| 335 | def _free_name(self, ctxt: ctypes.c_void_p, name: ctypes.c_char_p): |
| 336 | core.BNFreeString(name) |
nothing calls this directly
no test coverage detected