src/share/classes/java/lang/String.java

Print this page

        

*** 1008,1024 **** } private boolean nonSyncContentEquals(AbstractStringBuilder sb) { char v1[] = value; char v2[] = sb.getValue(); ! int i = 0; ! int n = value.length; ! while (n-- != 0) { if (v1[i] != v2[i]) { return false; } - i++; } return true; } /** --- 1008,1025 ---- } private boolean nonSyncContentEquals(AbstractStringBuilder sb) { char v1[] = value; char v2[] = sb.getValue(); ! int n = v1.length; ! if (n != sb.length()) { ! return false; ! } ! for (int i = 0; i < n; i++) { if (v1[i] != v2[i]) { return false; } } return true; } /**
*** 1036,1047 **** * false} otherwise * * @since 1.5 */ public boolean contentEquals(CharSequence cs) { - if (value.length != cs.length()) - return false; // Argument is a StringBuffer, StringBuilder if (cs instanceof AbstractStringBuilder) { if (cs instanceof StringBuffer) { synchronized(cs) { return nonSyncContentEquals((AbstractStringBuilder)cs); --- 1037,1046 ----
*** 1053,1068 **** // Argument is a String if (cs.equals(this)) return true; // Argument is a generic CharSequence char v1[] = value; ! int i = 0; ! int n = value.length; ! while (n-- != 0) { ! if (v1[i] != cs.charAt(i)) return false; ! i++; } return true; } /** --- 1052,1069 ---- // Argument is a String if (cs.equals(this)) return true; // Argument is a generic CharSequence char v1[] = value; ! int n = v1.length; ! if (n != cs.length()) { return false; ! } ! for (int i = 0; i < n; i++) { ! if (v1[i] != cs.charAt(i)) { ! return false; ! } } return true; } /**