lsteamclient: Update cxx.h to latest msvcp90 version.

CW-Bug-Id: #22729
This commit is contained in:
Rémi Bernon 2022-10-22 21:22:27 +02:00 committed by Arkadiusz Hiler
parent 03366c4d33
commit 6741a504f0
42 changed files with 1372 additions and 1257 deletions

View file

@ -1110,16 +1110,14 @@ def handle_class(klass):
out(f'extern vtable_ptr {winclassname}_vtable;\n')
out(u'\n')
out(u'#ifndef __GNUC__\n')
out(u'void __asm_dummy_vtables(void) {\n')
out(u'#endif\n')
out(f'DEFINE_RTTI_DATA0({winclassname}, 0, \".?AV{klass.name}@@\")\n')
out(u'\n')
out(f'__ASM_BLOCK_BEGIN({winclassname}_vtables)\n')
out(f' __ASM_VTABLE({winclassname},\n')
for method in sorted(klass.methods, key=lambda x: (x._index, -x._override)):
out(f' VTABLE_ADD_FUNC({winclassname}_{method.name})\n')
out(u' );\n')
out(u'#ifndef __GNUC__\n')
out(u'}\n')
out(u'#endif\n')
out(u'__ASM_BLOCK_END\n')
out(u'\n')
out(f'struct w_steam_iface *create_{winclassname}(void *u_iface)\n')
out(u'{\n')
@ -1314,6 +1312,25 @@ for _, klass in sorted(all_classes.items()):
handle_class(klass)
for name in sorted(set(k.name for k in all_classes.values())):
with open(f"win{name}.c", "a") as file:
out = file.write
out(f'void init_win{name}_rtti( char *base )\n')
out(u'{\n')
out(u'#ifdef __x86_64__\n')
for _, klass in sorted(all_classes.items()):
with open(f"win{klass.name}.c", "a") as file:
out = file.write
out(f' init_win{klass.full_name}_rtti( base );\n')
for name in sorted(set(k.name for k in all_classes.values())):
with open(f"win{name}.c", "a") as file:
out = file.write
out(u'#endif /* __x86_64__ */\n')
out(u'}\n')
with open("steamclient_generated.h", "w") as file:
out = file.write
@ -1344,6 +1361,15 @@ with open("steamclient_generated.c", "w") as file:
out(u' if (!strcmp( iface_version, constructors[i].iface_version ))\n')
out(u' return constructors[i].ctor;\n')
out(u' return NULL;\n')
out(u'}\n\n')
for name in sorted(set(k.name for k in all_classes.values())):
out(f'extern void init_win{name}_rtti( char * );\n')
out(u'\n')
out(u'void init_rtti( char *base )\n')
out(u'{\n')
for name in sorted(set(k.name for k in all_classes.values())):
out(f' init_win{name}_rtti( base );\n')
out(u'}\n')