MCPcopy Create free account
hub / github.com/ValveSoftware/Proton / alloc_callback_wtou

Function alloc_callback_wtou

lsteamclient/unixlib.cpp:1195–1225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1193}
1194
1195void *alloc_callback_wtou( int id, void *callback, int *callback_len, bool wow64 )
1196{
1197 const struct callback_def *c, *end, *best;
1198
1199 if (!(c = find_first_callback_def_by_id( id, wow64 ))) return callback;
1200
1201 if (wow64) end = wow64_callback_data + wow64_callback_data_size;
1202 else end = callback_data + callback_data_size;
1203
1204 best = NULL;
1205 while (c != end && c->id == id)
1206 {
1207 if (c->w_callback_len == *callback_len)
1208 {
1209 best = c;
1210 break;
1211 }
1212 if (!best && *callback_len >= c->w_callback_len) best = c;
1213 ++c;
1214 }
1215
1216 if (!best)
1217 {
1218 ERR( "len %d is too small for callback %d, using default.\n", *callback_len, id );
1219 best = find_first_callback_def_by_id( id, wow64 );
1220 }
1221 if (best->w_callback_len != *callback_len)
1222 WARN( "Found len %d for id %d, len %d.\n", best->w_callback_len, id, *callback_len );
1223 *callback_len = best->u_callback_len;
1224 return malloc( *callback_len );
1225}
1226
1227void convert_callback_utow( int id, void *u_callback, int u_callback_len, void *w_callback, int w_callback_len, bool wow64 )
1228{

Calls 1

Tested by

no test coverage detected