cvsuser 04/09/15 05:15:32
Modified: build_tools build_nativecall.pl
Log:
fixed error message if a signature was not found and made it more verbose
Revision Changes Path
1.55 +11 -4 parrot/build_tools/build_nativecall.pl
Index: build_nativecall.pl
===================================================================
RCS file: /cvs/public/parrot/build_tools/build_nativecall.pl,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -w -r1.54 -r1.55
--- build_nativecall.pl 8 Sep 2004 00:33:49 -0000 1.54
+++ build_nativecall.pl 15 Sep 2004 12:15:32 -0000 1.55
@@ -1,6 +1,6 @@
#! perl -w
# Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
-# $Id: build_nativecall.pl,v 1.54 2004/09/08 00:33:49 dan Exp $
+# $Id: build_nativecall.pl,v 1.55 2004/09/15 12:15:32 jrieks Exp $
=head1 NAME
@@ -165,7 +165,7 @@
/* nci.c
* Copyright: 2001-2003 The Perl Foundation. All Rights Reserved.
* CVS Info
- * $Id: build_nativecall.pl,v 1.54 2004/09/08 00:33:49 dan Exp $
+ * $Id: build_nativecall.pl,v 1.55 2004/09/15 12:15:32 jrieks Exp $
* Overview:
* Native Call Interface routines. The code needed to build a
* parrot to C call frame is in here
@@ -297,7 +297,7 @@
b = VTABLE_get_pmc_keyed_str(interpreter, HashPointer, signature);
- if (b)
+ if (b && (b->vtable->type(interpreter, b) == enum_class_UnManagedStruct) )
return F2DPTR(PMC_data(b));
/*
@@ -305,9 +305,16 @@
see which signature has an unknown type. I am sure someone can come up
with a neater way to do this.
*/
- ns = string_make(interpreter, " is an unknown signature type", 30,
"iso-8859-1", 0);
+ ns = string_make(interpreter, " is an unknown signature type", 29,
"iso-8859-1", 0);
message = string_concat(interpreter, signature, ns, 0);
+#if defined(CAN_BUILD_CALL_FRAMES)
+ ns = string_make(interpreter, ".\\nCAN_BUILD_CALL_FRAMES is enabled, this
should not happen", 58, "iso-8859-1", 0);
+#else
+ ns = string_make(interpreter, ".\\nCAN_BUILD_CALL_FRAMES is disabled, add the
signature to src/call_list.txt", 75, "iso-8859-1", 0);
+#endif
+ message = string_concat(interpreter, message, ns, 0);
+
/*
* I think there may be memory issues with this but if we get to here we are
* aborting.