annotate runtime/blueprint.c @ 139:a68e6828d896

Global stores and transactions are working. Definately leaks memory on retries. Probably a fair number of bugs to work out. However, a basic test program works.
author Mike Pavone <pavone@retrodev.com>
date Fri, 19 Nov 2010 04:04:14 -0500
parents 43cc42df26cc
children 9fab36cc706b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1 #include "blueprint.h"
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 #include "builtin.h"
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
3 #include "context.h"
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
4 #include <stddef.h>
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 typedef struct
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 blueprint * bp;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 } l_Build;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 object * make_Blueprint(int32_t type_id)
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 {
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 t_Blueprint * obj;
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 object * ret = new_object(TYPE_BLUEPRINT);
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 obj = (t_Blueprint *)ret;
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
16 obj->bp = type_id ? get_blueprint_byid(type_id) : NULL;
39
3d92bc1352c2 forgot a couple of files
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 return ret;
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
18 }
49
3e20ed8959c4 Added initial FFI implementation, Array type and 64-bit integers
Mike Pavone <pavone@retrodev.com>
parents: 39
diff changeset
19
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
20 int32_t _internal_blueprint_eq(object * left, object * right)
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
21 {
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
22 t_Blueprint * l = (t_Blueprint *)left;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
23 t_Blueprint * r = (t_Blueprint *)right;
105
43cc42df26cc Various compiler improvements
Mike Pavone <pavone@retrodev.com>
parents: 66
diff changeset
24 release_ref(left);
43cc42df26cc Various compiler improvements
Mike Pavone <pavone@retrodev.com>
parents: 66
diff changeset
25 release_ref(right);
66
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
26 return l->bp == r->bp;
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
27 }
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
28
d4b44ae2e34a New variant of C backend works now
Mike Pavone <pavone@retrodev.com>
parents: 49
diff changeset
29