src/java.base/share/classes/java/io/ObjectStreamClass.java
changeset 47722 ce6ff74192fc
parent 47400 f1721aa42d2c
child 52220 9c260a6b6471
equal deleted inserted replaced
47721:d2b306a70bf1 47722:ce6ff74192fc
  1578      * Returns true if classes are defined in the same runtime package, false
  1578      * Returns true if classes are defined in the same runtime package, false
  1579      * otherwise.
  1579      * otherwise.
  1580      */
  1580      */
  1581     private static boolean packageEquals(Class<?> cl1, Class<?> cl2) {
  1581     private static boolean packageEquals(Class<?> cl1, Class<?> cl2) {
  1582         return (cl1.getClassLoader() == cl2.getClassLoader() &&
  1582         return (cl1.getClassLoader() == cl2.getClassLoader() &&
  1583                 getPackageName(cl1).equals(getPackageName(cl2)));
  1583                 cl1.getPackageName().equals(cl2.getPackageName()));
  1584     }
       
  1585 
       
  1586     /**
       
  1587      * Returns package name of given class.
       
  1588      */
       
  1589     private static String getPackageName(Class<?> cl) {
       
  1590         String s = cl.getName();
       
  1591         int i = s.lastIndexOf('[');
       
  1592         i = (i < 0) ? 0 : i + 2;
       
  1593         int j = s.lastIndexOf('.');
       
  1594         return (i < j) ? s.substring(i, j) : "";
       
  1595     }
  1584     }
  1596 
  1585 
  1597     /**
  1586     /**
  1598      * Compares class names for equality, ignoring package names.  Returns true
  1587      * Compares class names for equality, ignoring package names.  Returns true
  1599      * if class names equal, false otherwise.
  1588      * if class names equal, false otherwise.