@Implementation(minSdk = P)
  protected static boolean nativeResolveAttrs(long ptr, long theme_ptr,
      @AttrRes int def_style_attr, @StyleRes int def_style_resid, @Nullable int[] java_values,
      @NonNull int[] java_attrs, @NonNull int[] out_java_values, @NonNull int[] out_java_indices) {
    int attrs_len = java_attrs.length;
    int out_values_len = out_java_values.length;
    if (out_values_len < (attrs_len * STYLE_NUM_ENTRIES)) {
      throw new IndexOutOfBoundsException("outValues too small");
    }

    int[] attrs = java_attrs; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(java_attrs, null));
    if (attrs == null) {
      return JNI_FALSE;
    }

    int[] values = null;
    int values_len = 0;
    if (java_values != null) {
      values_len = java_values.length;
      values = java_values; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(java_values, null));
      if (values == null) {
        // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT);
        return JNI_FALSE;
      }
    }

    int[] out_values = out_java_values;
    // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(out_java_values, null));
    if (out_values == null) {
      // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT);
      // if (values != null) {
      //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT);
      // }
      return JNI_FALSE;
    }

    int[] out_indices = null;
    if (out_java_indices != null) {
      int out_indices_len = out_java_indices.length;
      if (out_indices_len > attrs_len) {
        out_indices = out_java_indices;
        // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(out_java_indices, null));
        if (out_indices == null) {
          // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT);
          // if (values != null) {
          //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT);
          // }
          // env.ReleasePrimitiveArrayCritical(out_java_values, out_values, JNI_ABORT);
          return JNI_FALSE;
        }
      }
    }

    CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
    Theme theme = Registries.NATIVE_THEME9_REGISTRY.getNativeObject(theme_ptr);
    CHECK(theme.GetAssetManager() == assetmanager);
    // (void) assetmanager;

    boolean result = ResolveAttrs(
        theme, (int) (def_style_attr), (int) (def_style_resid),
        values, values_len, attrs,
        attrs_len, out_values, out_indices);
    // if (out_indices != null) {
    //   env.ReleasePrimitiveArrayCritical(out_java_indices, out_indices, 0);
    // }

    // env.ReleasePrimitiveArrayCritical(out_java_values, out_values, 0);
    // if (values != null) {
    //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT);
    // }
    // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT);
    return result ? JNI_TRUE : JNI_FALSE;
  }
@Implementation(minSdk = P)
  protected static boolean nativeResolveAttrs(long ptr, long theme_ptr,
      @AttrRes int def_style_attr, @StyleRes int def_style_resid, @Nullable int[] java_values,
      @NonNull int[] java_attrs, @NonNull int[] out_java_values, @NonNull int[] out_java_indices) {
    int attrs_len = java_attrs.length;
    int out_values_len = out_java_values.length;
    if (out_values_len < (attrs_len * STYLE_NUM_ENTRIES)) {
      throw new IndexOutOfBoundsException("outValues too small");
    }

    int[] attrs = java_attrs; 
    if (attrs == null) {
      return JNI_FALSE;
    }

    int[] values = null;
    int values_len = 0;
    if (java_values != null) {
      values_len = java_values.length;
      values = java_values; 
      if (values == null) {
        
        return JNI_FALSE;
      }
    }

    int[] out_values = out_java_values;
    
    if (out_values == null) {
      
      
      
      
      return JNI_FALSE;
    }

    int[] out_indices = null;
    if (out_java_indices != null) {
      int out_indices_len = out_java_indices.length;
      if (out_indices_len > attrs_len) {
        out_indices = out_java_indices;
        
        if (out_indices == null) {
          
          
          
          
          
          return JNI_FALSE;
        }
      }
    }

    CppAssetManager2 assetmanager = AssetManagerFromLong(ptr);
    Theme theme = Registries.NATIVE_THEME9_REGISTRY.getNativeObject(theme_ptr);
    CHECK(theme.GetAssetManager() == assetmanager);
    

    boolean result = ResolveAttrs(
        theme, (int) (def_style_attr), (int) (def_style_resid),
        values, values_len, attrs,
        attrs_len, out_values, out_indices);
    
    
    

    
    
    
    
    
    return result ? JNI_TRUE : JNI_FALSE;
  }
@ Implementation ( minSdk = P ) protected static boolean nativeResolveAttrs ( long ptr , long theme_ptr , @ AttrRes int def_style_attr , @ StyleRes int def_style_resid , @ Nullable int [ ] java_values , @ NonNull int [ ] java_attrs , @ NonNull int [ ] out_java_values , @ NonNull int [ ] out_java_indices ) { int attrs_len = java_attrs . length ; int out_values_len = out_java_values . length ; if ( out_values_len < ( attrs_len * STYLE_NUM_ENTRIES ) ) { throw new IndexOutOfBoundsException ( "outValues too small" ) ; } int [ ] attrs = java_attrs ; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(java_attrs, null)); if ( attrs == null ) { return JNI_FALSE ; } int [ ] values = null ; int values_len = 0 ; if ( java_values != null ) { values_len = java_values . length ; values = java_values ; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(java_values, null)); if ( values == null ) { // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT); return JNI_FALSE ; } } int [ ] out_values = out_java_values ; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(out_java_values, null)); if ( out_values == null ) { // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT); // if (values != null) { //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT); // } return JNI_FALSE ; } int [ ] out_indices = null ; if ( out_java_indices != null ) { int out_indices_len = out_java_indices . length ; if ( out_indices_len > attrs_len ) { out_indices = out_java_indices ; // reinterpret_cast<int*>(env.GetPrimitiveArrayCritical(out_java_indices, null)); if ( out_indices == null ) { // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT); // if (values != null) { //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT); // } // env.ReleasePrimitiveArrayCritical(out_java_values, out_values, JNI_ABORT); return JNI_FALSE ; } } } CppAssetManager2 assetmanager = AssetManagerFromLong ( ptr ) ; Theme theme = Registries . NATIVE_THEME9_REGISTRY . getNativeObject ( theme_ptr ) ; CHECK ( theme . GetAssetManager ( ) == assetmanager ) ; // (void) assetmanager; boolean result = ResolveAttrs ( theme , ( int ) ( def_style_attr ) , ( int ) ( def_style_resid ) , values , values_len , attrs , attrs_len , out_values , out_indices ) ; // if (out_indices != null) { //   env.ReleasePrimitiveArrayCritical(out_java_indices, out_indices, 0); // } // env.ReleasePrimitiveArrayCritical(out_java_values, out_values, 0); // if (values != null) { //   env.ReleasePrimitiveArrayCritical(java_values, values, JNI_ABORT); // } // env.ReleasePrimitiveArrayCritical(java_attrs, attrs, JNI_ABORT); return result ? JNI_TRUE : JNI_FALSE ; }
jintArray out_java_indices) {
jintArray out_java_indices ) {