diff options
Diffstat (limited to 'mixlib/mix_vm.c')
-rw-r--r-- | mixlib/mix_vm.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/mixlib/mix_vm.c b/mixlib/mix_vm.c index 3745c19..979d558 100644 --- a/mixlib/mix_vm.c +++ b/mixlib/mix_vm.c @@ -1,7 +1,7 @@ /* -*-c-*- ------------------ mix_vm.c : * Implementation of the functions declared in mix_vm.h * ------------------------------------------------------------------ - * Copyright (C) 2000 jose antonio ortega ruiz <jaortega@acm.org> + * Copyright (C) 2000, 2001 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -311,6 +311,19 @@ mix_vm_get_prog_count (const mix_vm_t *vm) return get_loc_ (vm); } +/* Get the source line number for a given address */ +guint +mix_vm_get_address_lineno (const mix_vm_t *vm, mix_address_t addr) +{ + gpointer gp_addr = GUINT_TO_POINTER ((guint)addr); + guint lineno; + + g_return_val_if_fail (vm != NULL, 0); + g_return_val_if_fail (MEMOK_ (addr), 0); + lineno = GPOINTER_TO_UINT (g_tree_lookup (vm->address_table, gp_addr)); + return lineno; +} + /* Reposition program counter and reset state so that a loaded program can be restarted. */ |