aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/gjavah.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2002-12-28 06:29:24 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2002-12-28 06:29:24 +0000
commit239b7deaef30a58050dca4a69ca8ef34ae3f2194 (patch)
tree64c467eec12b4a04912a915aa3ec1bc034665ebd /gcc/java/gjavah.c
parent62fbd434b0b16582c108561c7cd70319d5a32b17 (diff)
downloadgcc-239b7deaef30a58050dca4a69ca8ef34ae3f2194.zip
gcc-239b7deaef30a58050dca4a69ca8ef34ae3f2194.tar.gz
gcc-239b7deaef30a58050dca4a69ca8ef34ae3f2194.tar.bz2
gjavah.c (print_name_for_stub_or_jni): Adjust call to print_cxx_classname.
* gjavah.c (print_name_for_stub_or_jni): Adjust call to print_cxx_classname. (print_cxx_classname): Add add_scope parameter. (print_class_decls): Do not emit a semicolon after the extern "Java" block. (process_file): Adjust calls to print_cxx_classname. From-SVN: r60555
Diffstat (limited to 'gcc/java/gjavah.c')
-rw-r--r--gcc/java/gjavah.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/java/gjavah.c b/gcc/java/gjavah.c
index 9dc11ab..b1dc55f 100644
--- a/gcc/java/gjavah.c
+++ b/gcc/java/gjavah.c
@@ -122,7 +122,7 @@ static struct method_name *method_name_list;
static void print_field_info PARAMS ((FILE*, JCF*, int, int, JCF_u2));
static void print_mangled_classname PARAMS ((FILE*, JCF*, const char*, int));
-static int print_cxx_classname PARAMS ((FILE*, const char*, JCF*, int));
+static int print_cxx_classname PARAMS ((FILE*, const char*, JCF*, int, int));
static void print_method_info PARAMS ((FILE*, JCF*, int, int, JCF_u2));
static void print_c_decl PARAMS ((FILE*, JCF*, int, int, int, const char *,
int));
@@ -1533,7 +1533,7 @@ DEFUN (print_name_for_stub_or_jni, (stream, jcf, name_index, signature_index,
AND int is_init AND const char *name_override AND int flags)
{
const char *const prefix = flag_jni ? "Java_" : "";
- print_cxx_classname (stream, prefix, jcf, jcf->this_class);
+ print_cxx_classname (stream, prefix, jcf, jcf->this_class, 1);
fputs (flag_jni ? "_" : "::", stream);
print_full_cxx_name (stream, jcf, name_index,
signature_index, is_init, name_override,
@@ -1641,11 +1641,12 @@ DEFUN(print_mangled_classname, (stream, jcf, prefix, index),
to an array, ignore it and don't print PREFIX. Returns 1 if
something was printed, 0 otherwise. */
static int
-print_cxx_classname (stream, prefix, jcf, index)
+print_cxx_classname (stream, prefix, jcf, index, add_scope)
FILE *stream;
const char *prefix;
JCF *jcf;
int index;
+ int add_scope;
{
int name_index = JPOOL_USHORT1 (jcf, index);
int len, c;
@@ -1664,7 +1665,7 @@ print_cxx_classname (stream, prefix, jcf, index)
fputs (prefix, stream);
/* Print a leading "::" so we look in the right namespace. */
- if (! flag_jni && ! stubs)
+ if (! flag_jni && ! stubs && add_scope)
fputs ("::", stream);
while (s < limit)
@@ -1954,7 +1955,7 @@ print_class_decls (out, jcf, self)
/* We use an initial offset of 0 because the root namelet
doesn't cause anything to print. */
print_namelet (out, &root, 0);
- fputs ("};\n\n", out);
+ fputs ("}\n\n", out);
}
}
@@ -2130,7 +2131,8 @@ DEFUN(process_file, (jcf, out),
if (! stubs)
{
- if (! print_cxx_classname (out, "class ", jcf, jcf->this_class))
+ if (! print_cxx_classname (out, "class ", jcf,
+ jcf->this_class, 0))
{
fprintf (stderr, "class is of array type\n");
found_error = 1;
@@ -2139,7 +2141,7 @@ DEFUN(process_file, (jcf, out),
if (jcf->super_class)
{
if (! print_cxx_classname (out, " : public ",
- jcf, jcf->super_class))
+ jcf, jcf->super_class, 1))
{
fprintf (stderr, "base class is of array type\n");
found_error = 1;