jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45) if HANDLE_SOURCEDE...
authorPer Bothner <per@bothner.com>
Tue, 1 Mar 2005 17:03:45 +0000 (09:03 -0800)
committerPer Bothner <bothner@gcc.gnu.org>
Tue, 1 Mar 2005 17:03:45 +0000 (09:03 -0800)
* jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.

From-SVN: r95748

gcc/java/ChangeLog
gcc/java/jcf-dump.c
gcc/java/jcf-reader.c

index ce77d68cd2640d968b8bcf19688459d08e822a4d..7be7e7c45bd0ba4960732a45e348b56d7496d9f7 100644 (file)
@@ -1,3 +1,9 @@
+2005-03-01  Per Bothner  <per@bothner.com>
+
+       * jcf-reader.c (get_attribute): Handle SourceDebugExtension (JSR 45)
+       if HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE is defined.
+       * jcf-dump.c (HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE): Print contents.
+
 2005-03-01  Per Bothner  <per@bothner.com>
 
        * java-tree.h (IDENTIFIER_HANDLECLASS_VALUE): Remove ancient macro.
index 93d640f05bc840e9ad90b4e46da5bf6121218ccd..297bfed378c9bbfdb4ab9f7a75a2de5cc1d352e5 100644 (file)
@@ -342,6 +342,13 @@ utf8_equal_string (JCF *jcf, int index, const char * value)
        fputc ('\n', out);                                                  \
 }
 
+#define HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE(LENGTH) \
+{ int i, n = (LENGTH), c = 0;                                    \
+  COMMON_HANDLE_ATTRIBUTE(jcf, attribute_name, attribute_length); \
+  fputc ('\n', out); \
+  for (i = 0;  i < n;  i++) { c = JCF_readu(jcf); fputc(c, out); } \
+  if (c != '\r' && c != '\n') fputc('\n', out); }
+
 #define PROCESS_OTHER_ATTRIBUTE(JCF, INDEX, LENGTH) \
 { COMMON_HANDLE_ATTRIBUTE(JCF, INDEX, LENGTH); \
   fputc ('\n', out); JCF_SKIP (JCF, LENGTH); }
index 9b3ad1617730ff2617eaf7763671750a5b88be68..8353920d8dd0dee90ea1be8f8991c6b51755bc0e 100644 (file)
@@ -227,6 +227,13 @@ get_attribute (JCF *jcf)
       HANDLE_DEPRECATED_ATTRIBUTE ();
     }
   else
+#endif
+#ifdef HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE
+  if (MATCH_ATTRIBUTE ("SourceDebugExtension")) /* JSR 45 */
+    {
+      HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE (attribute_length);
+    }
+  else
 #endif
     {
 #ifdef PROCESS_OTHER_ATTRIBUTE