88
99import attrs
1010from structlog import get_logger
11- from treelib import Tree
1211from treelib .exceptions import NodeIDAbsentError
12+ from treelib .tree import Tree
1313
1414from unblob .file_utils import (
1515 Endian ,
@@ -422,13 +422,13 @@ def insert_entry(self, entry: YAFFSEntry):
422422 # or the file got truncated / rewritten.
423423 # Given that YAFFS is a log filesystem, whichever chunk comes
424424 # last takes precendence.
425- self .file_entries .update_node (entry .object_id , data = entry )
425+ self .file_entries .update_node (str ( entry .object_id ) , data = entry )
426426 return
427427
428428 if entry .object_id == entry .parent_obj_id :
429429 self .file_entries .create_node (
430- entry .object_id ,
431- entry .object_id ,
430+ str ( entry .object_id ) ,
431+ str ( entry .object_id ) ,
432432 data = entry ,
433433 )
434434 else :
@@ -442,15 +442,15 @@ def insert_entry(self, entry: YAFFSEntry):
442442 )
443443 return
444444 self .file_entries .create_node (
445- entry .object_id ,
446- entry .object_id ,
445+ str ( entry .object_id ) ,
446+ str ( entry .object_id ) ,
447447 data = entry ,
448- parent = entry .parent_obj_id ,
448+ parent = str ( entry .parent_obj_id ) ,
449449 )
450450
451451 def get_entry (self , object_id : int ) -> Optional [YAFFSEntry ]:
452452 try :
453- entry = self .file_entries .get_node (object_id )
453+ entry = self .file_entries .get_node (str ( object_id ) )
454454 if entry :
455455 return entry .data
456456 except NodeIDAbsentError :
@@ -462,8 +462,8 @@ def get_entry(self, object_id: int) -> Optional[YAFFSEntry]:
462462
463463 def resolve_path (self , entry : YAFFSEntry ) -> Path :
464464 resolved_path = Path (entry .name )
465- if self .file_entries .parent (entry .object_id ) is not None :
466- parent_entry = self .file_entries [entry .parent_obj_id ].data
465+ if self .file_entries .parent (str ( entry .object_id ) ) is not None :
466+ parent_entry = self .file_entries [str ( entry .parent_obj_id ) ].data
467467 return self .resolve_path (parent_entry ).joinpath (resolved_path )
468468 return resolved_path
469469
@@ -500,7 +500,7 @@ def extract_entry(self, entry: YAFFSEntry, fs: FileSystem):
500500 elif entry .object_type == YaffsObjectType .SYMLINK :
501501 fs .create_symlink (src = Path (entry .alias ), dst = out_path )
502502 elif entry .object_type == YaffsObjectType .HARDLINK :
503- dst_entry = self .file_entries [entry .equiv_id ].data
503+ dst_entry = self .file_entries [str ( entry .equiv_id ) ].data
504504 dst_path = self .resolve_path (dst_entry )
505505 fs .create_hardlink (src = dst_path , dst = out_path )
506506
0 commit comments