MCPcopy Create free account
hub / github.com/Inori/GPCS4 / GetFuncNameFromDB

Function GetFuncNameFromDB

Tools/GenerateCode.py:44–91  ·  view source on GitHub ↗
(db_root, imp_mods)

Source from the content-addressed store, hash-verified

42
43# https://github.com/idc/ps4libdoc/tree/5.05
44def GetFuncNameFromDB(db_root, imp_mods):
45 for mod_name in imp_mods:
46
47 print('process module {}'.format(mod_name))
48 db_basename = mod_name + '.sprx.json'
49
50 db_basename = FixFileName(db_basename)
51 db_fname = os.path.join(db_root, db_basename)
52 if not os.path.exists(db_fname):
53 print('file not exist {}'.format(db_fname))
54 exit(1)
55
56 src = open(db_fname)
57 db_obj = json.load(src)
58 lib_dic = imp_mods[mod_name]
59 db_mod_list = db_obj['modules']
60 for db_mod_dic in db_mod_list:
61 if db_mod_dic['name'] == mod_name:
62 db_lib_list = db_mod_dic['libraries']
63 break
64
65 found_lib = False
66 for lib_name in lib_dic:
67 print('process library {}'.format(lib_name))
68 for db_lib_dic in db_lib_list:
69 if db_lib_dic['name'] == lib_name:
70 db_sym_list = db_lib_dic['symbols']
71 found_lib = True
72 break
73
74 if not found_lib:
75 print('can not find lib {} in {}'.format(lib_name, db_fname))
76
77 func_list = lib_dic[lib_name]
78
79
80 for func_pair in func_list:
81 for db_sym_dic in db_sym_list:
82 db_nid = db_sym_dic['id']
83 if db_nid == func_pair[0]:
84 db_sym_name = db_sym_dic['name']
85 if not db_sym_name:
86 func_name = '_import_{:016X}'.format(func_pair[0])
87 else:
88 func_name = db_sym_name
89
90 func_pair[1] = func_name
91 break
92
93def SortDic(imp_mods):
94

Callers 1

MainFunction · 0.85

Calls 4

FixFileNameFunction · 0.85
printFunction · 0.50
formatMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected