2 * Copyright (C) 2001-2010, Parrot Foundation.
6 * Vtable manipulation code. Not to be confused with vtable.h
9 #ifndef PARROT_VTABLES_H_GUARD
10 #define PARROT_VTABLES_H_GUARD
13 /* HEADERIZER BEGIN: src/vtables.c */
14 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
18 PARROT_CANNOT_RETURN_NULL
19 VTABLE
* Parrot_clone_vtable(PARROT_INTERP
,
20 ARGIN(const VTABLE
*base_vtable
))
21 __attribute__nonnull__(1)
22 __attribute__nonnull__(2);
25 void Parrot_destroy_vtable(PARROT_INTERP
, ARGFREE_NOTNULL(VTABLE
*vtable
))
26 __attribute__nonnull__(1)
27 __attribute__nonnull__(2);
30 void Parrot_initialize_core_vtables(PARROT_INTERP
)
31 __attribute__nonnull__(1);
35 PARROT_CANNOT_RETURN_NULL
36 VTABLE
* Parrot_new_vtable(SHIM_INTERP
);
38 void mark_vtables(PARROT_INTERP
)
39 __attribute__nonnull__(1);
41 void parrot_alloc_vtables(PARROT_INTERP
)
42 __attribute__nonnull__(1);
44 void parrot_free_vtables(PARROT_INTERP
)
45 __attribute__nonnull__(1);
47 void parrot_realloc_vtables(PARROT_INTERP
)
48 __attribute__nonnull__(1);
50 #define ASSERT_ARGS_Parrot_clone_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
51 PARROT_ASSERT_ARG(interp) \
52 , PARROT_ASSERT_ARG(base_vtable))
53 #define ASSERT_ARGS_Parrot_destroy_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
54 PARROT_ASSERT_ARG(interp) \
55 , PARROT_ASSERT_ARG(vtable))
56 #define ASSERT_ARGS_Parrot_initialize_core_vtables \
57 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
58 PARROT_ASSERT_ARG(interp))
59 #define ASSERT_ARGS_Parrot_new_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
60 #define ASSERT_ARGS_mark_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
61 PARROT_ASSERT_ARG(interp))
62 #define ASSERT_ARGS_parrot_alloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
63 PARROT_ASSERT_ARG(interp))
64 #define ASSERT_ARGS_parrot_free_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
65 PARROT_ASSERT_ARG(interp))
66 #define ASSERT_ARGS_parrot_realloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
67 PARROT_ASSERT_ARG(interp))
68 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
69 /* HEADERIZER END: src/vtables.c */
71 #endif /* PARROT_VTABLES_H_GUARD */
75 * c-file-style: "parrot"
77 * vim: expandtab shiftwidth=4: