about summary refs log tree commit diff stats
path: root/wrapperhelper/src
diff options
context:
space:
mode:
authorrajdakin <rajdakin@gmail.com>2024-11-28 09:17:00 +0100
committerGitHub <noreply@github.com>2024-11-28 09:17:00 +0100
commitfd613de55e3476d40d91ba887c553d77fa3ca5e9 (patch)
treec234bc91ce7f0680df11c8d436a547fc7e2eb7da /wrapperhelper/src
parentb2dc460db91a5cec246ba96120ff17905d0b34af (diff)
downloadbox64-fd613de55e3476d40d91ba887c553d77fa3ca5e9.tar.gz
box64-fd613de55e3476d40d91ba887c553d77fa3ca5e9.zip
[WRAPPERHELPER] Transform from function to data if needed (#2089)
Diffstat (limited to 'wrapperhelper/src')
-rw-r--r--wrapperhelper/src/generator.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/wrapperhelper/src/generator.c b/wrapperhelper/src/generator.c
index 8061ba88..42eeb904 100644
--- a/wrapperhelper/src/generator.c
+++ b/wrapperhelper/src/generator.c
@@ -1103,7 +1103,7 @@ int solve_request_simple(request_t *req, type_t *emu_typ, type_t *target_typ, kh
 		int needs_D = 0, needs_my = req->def.dat.has_size && (req->def.rty == RQT_DATAM);
 		if (is_simple_type_simple(emu_typ, &needs_D, &needs_my, conv_map)) {
 			// TODO: Hmm...
-			req->val.rty = needs_my ? RQT_DATAM : req->def.rty;
+			req->val.rty = needs_my ? RQT_DATAM : (IS_RQT_FUNCTION(req->def.rty) ? RQT_DATA : req->def.rty);
 			req->val.dat.has_size = 1;
 			req->val.dat.sz = emu_typ->szinfo.size;
 			req->has_val = 1;
@@ -1774,7 +1774,7 @@ int solve_request(request_t *req, type_t *emu_typ, type_t *target_typ, khash_t(c
 			needs_my = 1;
 			/* FALLTHROUGH */
 		case SAFE_OK:
-			req->val.rty = needs_my ? RQT_DATAM : req->def.rty;
+			req->val.rty = needs_my ? RQT_DATAM : (IS_RQT_FUNCTION(req->def.rty) ? RQT_DATA : req->def.rty);
 			req->val.dat.has_size = 1;
 			req->val.dat.sz = emu_typ->szinfo.size;
 			req->has_val = 1;