X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;ds=sidebyside;f=fishdescriptor%2Fpy%2Ffishdescriptor%2Findonor.py;h=f01f9eb0c6e910de98ee65c8c654de3f8d091325;hb=9103059a4f81085859c56f5508f9d76022041869;hp=51b5a3de9940f6ec742813b84450d9efdd31d979;hpb=86b1fb55b995449d859fb13d925f66eb1fb12445;p=chiark-utils.git diff --git a/fishdescriptor/py/fishdescriptor/indonor.py b/fishdescriptor/py/fishdescriptor/indonor.py index 51b5a3d..f01f9eb 100644 --- a/fishdescriptor/py/fishdescriptor/indonor.py +++ b/fishdescriptor/py/fishdescriptor/indonor.py @@ -58,11 +58,11 @@ def parse_eval(expr): class DonorStructLayout(): def __init__(l, typename): - x = parse_eval('(%s){ }' % typename) + x = gdb.lookup_type(typename) l._typename = typename l._template = [ ] l._posns = { } - for f in x.type.fields(): + for f in x.fields(): l._posns[f.name] = len(l._template) try: f.type.fields(); blank = '{ }' except TypeError: blank = '0' @@ -229,7 +229,7 @@ class DonorImplementation(): def _protocol_read(di): input = sys.stdin.readline() if input == '': return None - input.rstrip('\n') + input = input.rstrip('\n') sys.stderr.write("#< %s\n" % input) return input