changeset 6:59c1086467f9

fix
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Fri, 20 Mar 2015 19:58:02 +0900
parents b8066055e295
children ad48a076a8e5
files src/allocate.c
diffstat 1 files changed, 23 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/src/allocate.c	Wed Mar 18 16:19:17 2015 +0900
+++ b/src/allocate.c	Fri Mar 20 19:58:02 2015 +0900
@@ -11,41 +11,41 @@
 #define SIZE 1024
 
 typedef struct DataSegment1 {
-    int i;    // 4 byte
-    char c;   // 1 byte
-              // padding 3 byte
-} ds, *dsptr; // 8 byte
+    int i;      // 4 byte
+    char c[10]; // 10 byte
+                // padding 2 byte
+} ds;
 
 typedef struct metaDataSegment1 {
     size_t size; // 8 byte
-    dsptr ds;    // 8 byte
-} mds, *mdsptr;  // 16 byte
+    ds* ds;    // 8 byte
+} mds;
 
-typedef struct Context {
-    dsptr ds;
-    mdsptr mds;
-    dsptr ds_heap;
-    mdsptr mds_heap;
-} context, *contextptr;
+typedef struct Context_st {
+    ds* ds;
+    mds* mds;
+    ds* ds_heap;
+    mds* mds_heap;
+} Context;
 
-__code start_code(contextptr context) {
+__code start_code(Context* context) {
     goto meta_start_code(context);
 }
 
-__code meta_start_code(contextptr context) {
+__code meta_start_code(Context* context) {
     goto code1(context);
 }
 
-__code code1(contextptr context) {
+__code code1(Context* context) {
     goto meta_code1(context);
 }
 
-__code meta_code1(contextptr context) {
+__code meta_code1(Context* context) {
     goto allocate(context, SIZE);
 }
 
-__code allocate(contextptr context, int size) {
-    dsptr in = context->ds;
+__code allocate(Context* context, int size) {
+    ds* in = context->ds;
     context->ds += size;
     context->mds->ds = in;
     context->mds->size = context->ds - in;
@@ -53,13 +53,12 @@
     goto meta_allocate(context, in);
 }
 
-__code meta_allocate(contextptr context, dsptr in) {
+__code meta_allocate(Context* context, ds* in) {
     goto exit_code(context, in, 0);
 }
 
-__code exit_code(contextptr context, dsptr in, int i) {
+__code exit_code(Context* context, ds* in, int i) {
     in[i].i = i;
-    printf("%d\n", in[i].i);
     if (i == SIZE) {
         free(context->ds_heap);
         free(context->mds_heap);
@@ -69,9 +68,9 @@
 }
 
 int main() {
-    contextptr context = (contextptr)malloc(sizeof(contextptr));
-    context->ds_heap = (dsptr)malloc(1024);
-    context->mds_heap = (mdsptr)malloc(1024);
+    Context* context = (Context*)malloc(sizeof(Context));
+    context->ds_heap = (ds*)malloc(1024);
+    context->mds_heap = (mds*)malloc(1024);
     context->ds = context->ds_heap;
     context->mds = context->mds_heap;
     goto start_code(context);