# HG changeset patch # User Thinker K.F. Li # Date 1311602013 -28800 # Node ID 3898711adb2c5c0038d2e05ec2d4392be22173bf # Parent c0c127c7b37e8c123f566baf16939c9f56d9c256 Make sure string data list is consistent. - Make sure string data list is uniquely - Name of inserted/injected class is also in the list. diff -r c0c127c7b37e -r 3898711adb2c paraspace/injection.py --- a/paraspace/injection.py Mon Jul 25 20:37:32 2011 +0800 +++ b/paraspace/injection.py Mon Jul 25 21:53:33 2011 +0800 @@ -109,11 +109,11 @@ strdatas = [(obj_id, obj) for obj_id, obj in visit_log.items() if isinstance(obj, _DEX_StringDataItem)] - dex_str_2_strdata = dict([(strdata.data, strdata) + dex_str_2_strdata = dict([(strdata.data.data, strdata) for strdata in dex.stringDataItems.items]) for obj_id, strdata in strdatas: - if strdata.data in dex_str_2_strdata: - visit_log[obj_id] = dex_str_2_strdata[strdata] + if strdata.data.data in dex_str_2_strdata: + visit_log[obj_id] = dex_str_2_strdata[strdata.data.data] else: dex_append_obj_list(dex, strdata) pass diff -r c0c127c7b37e -r 3898711adb2c paraspace/tests/injection_test.py --- a/paraspace/tests/injection_test.py Mon Jul 25 20:37:32 2011 +0800 +++ b/paraspace/tests/injection_test.py Mon Jul 25 21:53:33 2011 +0800 @@ -70,5 +70,11 @@ classdata_map = _find_map(helloworld_unlinked, 0x2000) assert classdata_map.size == classdef_map.size + + # Check strings + strdatas = helloworld_unlinked.stringDataItems.items + strs = sorted([strdata.data.data for strdata in strdatas]) + assert len(strs) == len(set(strs)) # uniquely + assert 'Lcom/codemud/fakefile/fakefile;' in strs pass