Skip to content

Commit c38f077

Browse files
emesarespoonmilk
authored andcommitted
Misc python fixes
Fixes #6655 Fixes #6654 Fixes #6653 https://i.imgflip.com/5llikl.png
1 parent 76215b8 commit c38f077

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

python/binaryview.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9726,7 +9726,7 @@ def set_comment_at(self, addr: int, comment: str) -> None:
97269726
>>> bv.set_comment_at(here, "hi")
97279727
97289728
"""
9729-
core.BNSetGlobalCommentForAddress(self.handle, addr, comment)
9729+
core.BNSetGlobalCommentForAddress(self.handle, addr, str(comment))
97309730

97319731
@property
97329732
def debug_info(self) -> "debuginfo.DebugInfo":
@@ -9766,7 +9766,7 @@ def query_metadata(self, key: str) -> 'metadata.MetadataValueType':
97669766
>>> bv.query_metadata("string")
97679767
'my_data'
97689768
"""
9769-
md_handle = core.BNBinaryViewQueryMetadata(self.handle, key)
9769+
md_handle = core.BNBinaryViewQueryMetadata(self.handle, str(key))
97709770
if md_handle is None:
97719771
raise KeyError(key)
97729772
return metadata.Metadata(handle=md_handle).value
@@ -9802,7 +9802,7 @@ def store_metadata(self, key: str, md: metadata.MetadataValueType, isAuto: bool
98029802
_md = md
98039803
if not isinstance(_md, metadata.Metadata):
98049804
_md = metadata.Metadata(_md)
9805-
core.BNBinaryViewStoreMetadata(self.handle, key, _md.handle, isAuto)
9805+
core.BNBinaryViewStoreMetadata(self.handle, str(key), _md.handle, isAuto)
98069806

98079807
def remove_metadata(self, key: str) -> None:
98089808
"""
@@ -9815,7 +9815,7 @@ def remove_metadata(self, key: str) -> None:
98159815
>>> bv.store_metadata("integer", 1337)
98169816
>>> bv.remove_metadata("integer")
98179817
"""
9818-
core.BNBinaryViewRemoveMetadata(self.handle, key)
9818+
core.BNBinaryViewRemoveMetadata(self.handle, str(key))
98199819

98209820
@property
98219821
def metadata(self) -> Dict[str, 'metadata.MetadataValueType']:
@@ -9878,7 +9878,7 @@ def get_load_settings(self, type_name: str) -> Optional[settings.Settings]:
98789878
:return: the load settings
98799879
:rtype: :py:class:`~binaryninja.settings.Settings`, or ``None``
98809880
"""
9881-
settings_handle = core.BNBinaryViewGetLoadSettings(self.handle, type_name)
9881+
settings_handle = core.BNBinaryViewGetLoadSettings(self.handle, str(type_name))
98829882
if settings_handle is None:
98839883
return None
98849884
return settings.Settings(handle=settings_handle)
@@ -9893,7 +9893,7 @@ def set_load_settings(self, type_name: str, settings: Optional[settings.Settings
98939893
"""
98949894
if settings is not None:
98959895
settings = settings.handle
9896-
core.BNBinaryViewSetLoadSettings(self.handle, type_name, settings)
9896+
core.BNBinaryViewSetLoadSettings(self.handle, str(type_name), settings)
98979897

98989898
def parse_expression(self, expression: str, here: int = 0) -> int:
98999899
r"""

python/database.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -333,23 +333,23 @@ def globals(self) -> Dict[str, str]:
333333

334334
def read_global(self, key: str) -> str:
335335
"""Get a specific global by key"""
336-
value = core.BNReadDatabaseGlobal(self.handle, key)
336+
value = core.BNReadDatabaseGlobal(self.handle, str(key))
337337
assert value is not None
338338
return value
339339

340340
def write_global(self, key: str, value: str):
341341
"""Write a global into the database"""
342-
core.BNWriteDatabaseGlobal(self.handle, key, value)
342+
core.BNWriteDatabaseGlobal(self.handle, str(key), str(value))
343343

344344
def read_global_data(self, key: str) -> databuffer.DataBuffer:
345345
"""Get a specific global by key, as a binary buffer"""
346-
handle = core.BNReadDatabaseGlobalData(self.handle, key)
346+
handle = core.BNReadDatabaseGlobalData(self.handle, str(key))
347347
assert handle is not None
348348
return databuffer.DataBuffer(handle=handle)
349349

350350
def write_global_data(self, key: str, value: databuffer.DataBuffer):
351351
"""Write a binary buffer into a global in the database"""
352-
core.BNWriteDatabaseGlobalData(self.handle, key, value.handle)
352+
core.BNWriteDatabaseGlobalData(self.handle, str(key), value.handle)
353353

354354
@property
355355
def file(self) -> 'filemetadata.FileMetadata':

python/project.py

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def name(self, new_name: str) -> bool:
139139
140140
:param new_name: Desired name
141141
"""
142-
return core.BNProjectFileSetName(self._handle, new_name)
142+
return core.BNProjectFileSetName(self._handle, str(new_name))
143143

144144
@property
145145
def description(self) -> str:
@@ -157,7 +157,7 @@ def description(self, new_description: str) -> bool:
157157
158158
:param new_description: Desired description
159159
"""
160-
return core.BNProjectFileSetDescription(self._handle, new_description)
160+
return core.BNProjectFileSetDescription(self._handle, str(new_description))
161161

162162
@property
163163
def folder(self) -> Optional['ProjectFolder']:
@@ -257,7 +257,7 @@ def name(self, new_name: str) -> bool:
257257
258258
:param new_name: Desired name
259259
"""
260-
return core.BNProjectFolderSetName(self._handle, new_name)
260+
return core.BNProjectFolderSetName(self._handle, str(new_name))
261261

262262
@property
263263
def description(self) -> str:
@@ -275,7 +275,7 @@ def description(self, new_description: str) -> bool:
275275
276276
:param new_description: Desired description
277277
"""
278-
return core.BNProjectFolderSetDescription(self._handle, new_description)
278+
return core.BNProjectFolderSetDescription(self._handle, str(new_description))
279279

280280
@property
281281
def parent(self) -> Optional['ProjectFolder']:
@@ -353,7 +353,7 @@ def create_project(path: AsPath, name: str) -> 'Project':
353353
:raises ProjectException: If there was an error creating the project
354354
"""
355355
binaryninja._init_plugins()
356-
project_handle = core.BNCreateProject(str(path), name)
356+
project_handle = core.BNCreateProject(str(path), str(name))
357357
if project_handle is None:
358358
raise ProjectException("Failed to create project")
359359
return Project(handle=project_handle)
@@ -417,7 +417,7 @@ def name(self, new_name: str):
417417
418418
:param new_name: Desired name
419419
"""
420-
core.BNProjectSetName(self._handle, new_name)
420+
core.BNProjectSetName(self._handle, str(new_name))
421421

422422
@property
423423
def description(self) -> str:
@@ -435,15 +435,15 @@ def description(self, new_description: str):
435435
436436
:param new_description: Desired description
437437
"""
438-
core.BNProjectSetDescription(self._handle, new_description)
438+
core.BNProjectSetDescription(self._handle, str(new_description))
439439

440440
def query_metadata(self, key: str) -> MetadataValueType:
441441
"""
442442
Retrieves metadata stored under a key from the project
443443
444444
:param str key: Key to query
445445
"""
446-
md_handle = core.BNProjectQueryMetadata(self._handle, key)
446+
md_handle = core.BNProjectQueryMetadata(self._handle, str(key))
447447
if md_handle is None:
448448
raise KeyError(key)
449449
return Metadata(handle=md_handle).value
@@ -458,15 +458,15 @@ def store_metadata(self, key: str, value: MetadataValueType):
458458
_val = value
459459
if not isinstance(_val, Metadata):
460460
_val = Metadata(_val)
461-
core.BNProjectStoreMetadata(self._handle, key, _val.handle)
461+
core.BNProjectStoreMetadata(self._handle, str(key), _val.handle)
462462

463463
def remove_metadata(self, key: str):
464464
"""
465465
Removes the metadata associated with this key from the project
466466
467467
:param str key: Key associated with the metadata object to remove
468468
"""
469-
core.BNProjectRemoveMetadata(self._handle, key)
469+
core.BNProjectRemoveMetadata(self._handle, str(key))
470470

471471
def create_folder_from_path(self, path: Union[PathLike, str], parent: Optional[ProjectFolder] = None, description: str = "", progress_func: ProgressFuncType = _nop) -> ProjectFolder:
472472
"""
@@ -483,7 +483,7 @@ def create_folder_from_path(self, path: Union[PathLike, str], parent: Optional[P
483483
project=self._handle,
484484
path=str(path),
485485
parent=parent_handle,
486-
description=description,
486+
description=str(description),
487487
ctxt=None,
488488
progress=_wrap_progress(progress_func)
489489
)
@@ -506,8 +506,8 @@ def create_folder(self, parent: Optional[ProjectFolder], name: str, description:
506506
folder_handle = core.BNProjectCreateFolder(
507507
project=self._handle,
508508
parent=parent_handle,
509-
name=name,
510-
description=description,
509+
name=str(name),
510+
description=str(description),
511511
)
512512

513513
if folder_handle is None:
@@ -575,8 +575,8 @@ def create_file_from_path(self, path: AsPath, folder: Optional[ProjectFolder], n
575575
project=self._handle,
576576
path=str(path),
577577
folder=folder_handle,
578-
name=name,
579-
description=description,
578+
name=str(name),
579+
description=str(description),
580580
ctxt=None,
581581
progress=_wrap_progress(progress_func)
582582
)
@@ -596,6 +596,7 @@ def create_file(self, contents: bytes, folder: Optional[ProjectFolder], name: st
596596
:param description: Description to assign to the created file
597597
:param progress_func: Progress function that will be called as the file is being added
598598
"""
599+
description = description if description is not None else ""
599600
folder_handle = folder._handle if folder is not None else None
600601
buf = (ctypes.c_ubyte * len(contents))()
601602
ctypes.memmove(buf, contents, len(contents))
@@ -604,8 +605,8 @@ def create_file(self, contents: bytes, folder: Optional[ProjectFolder], name: st
604605
contents=buf,
605606
contentsSize=len(contents),
606607
folder=folder_handle,
607-
name=name,
608-
description=description,
608+
name=str(name),
609+
description=str(description),
609610
ctxt=None,
610611
progress=_wrap_progress(progress_func)
611612
)
@@ -644,7 +645,7 @@ def get_file_by_id(self, id: str) -> Optional[ProjectFile]:
644645
:param id: Unique identifier for a file
645646
:return: File with the requested id or None
646647
"""
647-
handle = core.BNProjectGetFileById(self._handle, id)
648+
handle = core.BNProjectGetFileById(self._handle, str(id))
648649
if handle is None:
649650
return None
650651
file = ProjectFile(handle)

0 commit comments

Comments
 (0)