+ C->context = psi_jit_context_init(NULL);
+}
+
+static inline void psi_jit_destroy_callbacks(struct psi_context *C, let_val *let_val) {
+ let_callback *cb;
+ let_func *fn = NULL;
+
+ switch (let_val->kind) {
+ case PSI_LET_CALLBACK:
+ cb = let_val->data.callback;
+
+ if (cb->decl && cb->decl->call.info) {
+ psi_jit_call_free(cb->decl->call.info);
+ }
+ fn = cb->func;
+ /* no break */
+ case PSI_LET_FUNC:
+ if (!fn) {
+ fn = let_val->data.func;
+ }
+
+ if (fn->inner) {
+ size_t i;
+
+ for (i = 0; i < fn->inner->count; ++i) {
+ psi_jit_destroy_callbacks(C, fn->inner->vals[i]);
+ }
+ }
+ break;
+ default:
+ break;
+ }