Skip to content

Commit 94d9fce

Browse files
committed
---
yaml --- r: 6749 b: refs/heads/master c: 8881833 h: refs/heads/master i: 6747: f0356d1 v: v3
1 parent 1c41e6b commit 94d9fce

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 34283c6a7863d5d69641f5c39422db70fe6c862a
2+
refs/heads/master: 88818334b7d6e4c4dfd07cdea09255ac8d42e5b7

trunk/src/rt/rust_upcall.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -224,21 +224,23 @@ void upcall_s_create_shared_type_desc(s_create_shared_type_desc_args *args)
224224

225225
// Copy the main part of the type descriptor:
226226
const type_desc *td = args->td;
227-
int n_descs = td->n_descs;
228-
size_t sz = sizeof(type_desc) + sizeof(type_desc*) * n_descs;
227+
int n_params = td->n_params;
228+
size_t sz = sizeof(type_desc) + sizeof(type_desc*) * n_params;
229229
args->res = (type_desc*) task->kernel->malloc(sz, "create_shared_type_desc");
230230
memcpy(args->res, td, sizeof(type_desc));
231231

232232
// Recursively copy any referenced descriptors:
233-
if (n_descs == 0) {
233+
if (n_params == 0) {
234234
args->res->first_param = NULL;
235235
} else {
236236
args->res->first_param = &args->res->descs[1];
237237
args->res->descs[0] = args->res;
238-
for (int i = 1; i < n_descs; i++) {
239-
s_create_shared_type_desc_args rec_args = { td->descs[i], 0 };
238+
for (int i = 0; i < n_params; i++) {
239+
s_create_shared_type_desc_args rec_args = {
240+
td->first_param[i], 0
241+
};
240242
upcall_s_create_shared_type_desc(&rec_args);
241-
args->res->descs[i] = rec_args.res;
243+
args->res->first_param[i] = rec_args.res;
242244
}
243245
}
244246
}
@@ -260,8 +262,8 @@ void upcall_s_free_shared_type_desc(type_desc *td)
260262
LOG_UPCALL_ENTRY(task);
261263

262264
// Recursively free any referenced descriptors:
263-
for (unsigned i = 1; i < td->n_descs; i++) {
264-
upcall_s_free_shared_type_desc((type_desc*) td->descs[i]);
265+
for (unsigned i = 0; i < td->n_params; i++) {
266+
upcall_s_free_shared_type_desc((type_desc*) td->first_param[i]);
265267
}
266268

267269
task->kernel->free(td);

0 commit comments

Comments
 (0)