Guard against changes to class_t layout.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/e28b8112 Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/e28b8112 Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/e28b8112 Branch: refs/heads/master Commit: e28b81127cbc223ac74d5c1dd42c23f768757bc3 Parents: 7161001 Author: Marvin Humphrey <[email protected]> Authored: Mon Sep 15 16:24:37 2014 -0700 Committer: Marvin Humphrey <[email protected]> Committed: Mon Sep 15 19:08:45 2014 -0700 ---------------------------------------------------------------------- devel/benchmarks/method_dispatch/dso.c | 7 +++---- devel/benchmarks/method_dispatch/dso.h | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/e28b8112/devel/benchmarks/method_dispatch/dso.c ---------------------------------------------------------------------- diff --git a/devel/benchmarks/method_dispatch/dso.c b/devel/benchmarks/method_dispatch/dso.c index 28a30e2..d0f323f 100644 --- a/devel/benchmarks/method_dispatch/dso.c +++ b/devel/benchmarks/method_dispatch/dso.c @@ -29,9 +29,8 @@ method_t Obj_Hello_THUNK_PTR; void bootstrap() { - size_t method_idx = 3; size_t class_size = offsetof(class_t, vtable) - + (method_idx + 1) * sizeof(method_t); + + (METHOD_IDX + 1) * sizeof(method_t); OBJ = (class_t*)calloc(1, class_size); @@ -39,8 +38,8 @@ bootstrap() { OBJ->class_size = class_size; Obj_Hello_OFFSET = offsetof(class_t, vtable) - + method_idx * sizeof(method_t); - OBJ->vtable[method_idx] = Obj_hello; + + METHOD_IDX * sizeof(method_t); + OBJ->vtable[METHOD_IDX] = Obj_hello; Obj_Hello_THUNK_PTR = thunk3; } http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/e28b8112/devel/benchmarks/method_dispatch/dso.h ---------------------------------------------------------------------- diff --git a/devel/benchmarks/method_dispatch/dso.h b/devel/benchmarks/method_dispatch/dso.h index fe1a07f..587a2c4 100644 --- a/devel/benchmarks/method_dispatch/dso.h +++ b/devel/benchmarks/method_dispatch/dso.h @@ -22,7 +22,9 @@ extern class_t *OBJ; extern size_t Obj_Hello_OFFSET; extern method_t Obj_Hello_THUNK_PTR; -#define Obj_Hello_FIXED_OFFSET (5 * sizeof(void*)) +#define METHOD_IDX 3 +#define Obj_Hello_FIXED_OFFSET \ + (offsetof(class_t, vtable) + METHOD_IDX * sizeof(method_t)) void bootstrap();
