/** Is a finalizer method extended from Object: {@code protected void finalize()} */ @Pure public static boolean isFinalizer(final RVMMethod method) { if (!method.isProtected()) return false; // is the method name "finalize" byte[] name = method.getName().getBytes(); if (name.length != 8) return false; // is the desc "()V"? byte[] desc = method.getDescriptor().getBytes(); if (desc.length != 3) return false; if (name[0] != 'f' || name[1] != 'i' || name[2] != 'n' || name[3] != 'a' || name[4] != 'l' || name[5] != 'i' || name[6] != 'z' || name[7] != 'e' || desc[8] != '(' || desc[9] != ')' || desc[10] != 'V') return false; return true; }