if (cu->language != language_cplus)
if (cu->language != language_cplus && cu->language != language_java)
determine_prefix (struct die_info *die, struct dwarf2_cu *cu){  struct die_info *parent;  if (cu->language != language_cplus)    return NULL;  parent = die->parent;  if (parent == NULL)    {      return xstrdup ("");    }  else    {      switch (parent->tag) {      case DW_TAG_namespace:	{	  /* FIXME: carlton/2004-03-05: Should I follow extension dies	     before doing this check?  */	  if (parent->type != NULL && TYPE_TAG_NAME (parent->type) != NULL)	    {	      return xstrdup (TYPE_TAG_NAME (parent->type));	    }	  else	    {	      int dummy;	      char *parent_prefix = determine_prefix (parent, cu);	      char *retval = typename_concat (parent_prefix,					      namespace_name (parent, &dummy,							      cu));	      xfree (parent_prefix);	      return retval;	    }	}	break;      case DW_TAG_class_type:      case DW_TAG_structure_type:	{	  if (parent->type != NULL && TYPE_TAG_NAME (parent->type) != NULL)	    {	      return xstrdup (TYPE_TAG_NAME (parent->type));	    }	  else	    {	      const char *old_prefix = processing_current_prefix;	      char *new_prefix = determine_prefix (parent, cu);	      char *retval;	      processing_current_prefix = new_prefix;	      retval = determine_class_name (parent, cu);	      processing_current_prefix = old_prefix;	      xfree (new_prefix);	      return retval;	    }	}      default:	return determine_prefix (parent, cu);      }    }}