mirror of
https://github.com/idapython/src
synced 2026-06-08 14:47:00 +00:00
IDA Pro 6.6 support
What's new: - added the decompiler bindings - Expose simpleline_t type to IDAPython. That lets the user to set the bgcolor & text for each line in the decompilation. - Wrapped new functions from the IDA SDK Various fixes: for non-code locations, idc.GetOpnd() would create instructions instead of returning empty result - idb_event::area_cmt_changed was never received in IDB_Hooks (and descendants) - idb_event::ti_changed, and idb_event::op_ti_changed notifications were not accessible in IDAPython - op_t.value was truncated to 32 bits under IDA64. - print_tinfo() wouldn't return a valid string. - readsel2() was not usable. - read_selection() was buggy for 64-bit programs. - StructMembers() considered holes in structures, and didn't properly iterate through the whole structure definition. - There was no way to call calc_switch_cases() from IDAPython. - when using multi-select/multi-edit choosers, erroneous event codes could be sent at beginning & end of batch deletion of lines. - When, in a PluginForm#OnCreate, the layout of IDA was requested to change (for example by starting a debugging session), that PluginForm could be deleted and create an access violation. - tinfo_t objects created from IDAPython could cause an assertion failure at exit time. - Usage of IDAPython's DropdownListControl was broken.
This commit is contained in:
@@ -8,7 +8,7 @@ try:
|
||||
from _idaapi import set_script_timeout
|
||||
import idaapi
|
||||
from idaapi import py_clinked_object_t
|
||||
from idaapi import qstrvec_t
|
||||
from idaapi import _qstrvec_t
|
||||
stdalone = False
|
||||
except:
|
||||
stdalone = True
|
||||
@@ -50,7 +50,7 @@ try:
|
||||
from py_choose2 import *
|
||||
py_clinked_object_t = idaapi.py_clinked_object_t
|
||||
textctrl_info_t = idaapi.textctrl_info_t
|
||||
qstrvec_t = idaapi.qstrvec_t
|
||||
_qstrvec_t = idaapi._qstrvec_t
|
||||
|
||||
_idaapi.BADADDR = 0xFFFFFFFF
|
||||
_idaapi.MAXSTR = 1024
|
||||
@@ -776,7 +776,7 @@ class Form(object):
|
||||
Form.Control.free(self)
|
||||
|
||||
|
||||
class DropdownListControl(InputControl, qstrvec_t):
|
||||
class DropdownListControl(InputControl, _qstrvec_t):
|
||||
"""
|
||||
Dropdown control
|
||||
This control allows manipulating a dropdown control
|
||||
@@ -803,7 +803,7 @@ class Form(object):
|
||||
hlp)
|
||||
|
||||
# Init the associated qstrvec
|
||||
qstrvec_t.__init__(self, items)
|
||||
_qstrvec_t.__init__(self, items)
|
||||
|
||||
# Remember if readonly or not
|
||||
self.readonly = readonly
|
||||
@@ -814,7 +814,7 @@ class Form(object):
|
||||
val_addr = addressof(self.__selval)
|
||||
else:
|
||||
# Create an strvec with one qstring
|
||||
self.__selval = qstrvec_t([selval])
|
||||
self.__selval = _qstrvec_t([selval])
|
||||
# Get address of the first element
|
||||
val_addr = self.__selval.addressof(0)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user