-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[jnigen] JObject is now composed of JReference instead of inheriting it. #982
Conversation
PR HealthCoverage
|
File | Coverage |
---|---|
pkgs/jni/lib/jni.dart | 💔 Not covered |
pkgs/jni/lib/src/jarray.dart | 💔 Not covered |
pkgs/jni/lib/src/jobject.dart | 💔 Not covered |
pkgs/jni/lib/src/jreference.dart | 💔 Not covered |
pkgs/jni/lib/src/jvalues.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jboolean.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jbyte.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jcharacter.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jdouble.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jfloat.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jinteger.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jlong.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jnumber.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jshort.dart | 💔 Not covered |
pkgs/jni/lib/src/lang/jstring.dart | 💔 Not covered |
pkgs/jni/lib/src/nio/jbuffer.dart | 💔 Not covered |
pkgs/jni/lib/src/nio/jbyte_buffer.dart | 💔 Not covered |
pkgs/jni/lib/src/util/jiterator.dart | 💔 Not covered |
pkgs/jni/lib/src/util/jlist.dart | 💔 Not covered |
pkgs/jni/lib/src/util/jmap.dart | 💔 Not covered |
pkgs/jni/lib/src/util/jset.dart | 💔 Not covered |
pkgs/jnigen/example/in_app_java/lib/android_utils.dart | 💔 Not covered |
pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart | 💔 Not covered |
pkgs/jnigen/example/notification_plugin/lib/notifications.dart | 💔 Not covered |
pkgs/jnigen/example/pdfbox_plugin/example/lib/main.dart | 💔 Not covered |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart | 💔 Not covered |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart | 💔 Not covered |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart | 💔 Not covered |
pkgs/jnigen/lib/src/bindings/dart_generator.dart | 💔 Not covered |
This check for test coverage is informational (issues shown here will not fail the PR).
This check can be disabled by tagging the PR with skip-coverage-check
License Headers ⚠️
Details
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
Files |
---|
pkgs/jni/lib/src/lang/jcharacter.dart |
pkgs/jnigen/example/in_app_java/lib/android_utils.dart |
pkgs/jnigen/example/kotlin_plugin/lib/kotlin_bindings.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocument.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/PDDocumentInformation.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/PDFTextStripper.dart |
All source files should start with a license header.
Unrelated files missing license headers
Files |
---|
pkgs/ffi/example/main.dart |
pkgs/ffigen/example/libclang-example/generated_bindings.dart |
pkgs/ffigen/example/objective_c/avf_audio_bindings.dart |
pkgs/ffigen/example/shared_bindings/generate.dart |
pkgs/ffigen/example/shared_bindings/lib/generated/a_gen.dart |
pkgs/ffigen/example/shared_bindings/lib/generated/a_shared_b_gen.dart |
pkgs/ffigen/example/shared_bindings/lib/generated/base_gen.dart |
pkgs/ffigen/example/simple/generated_bindings.dart |
pkgs/ffigen/example/swift/swift_api_bindings.dart |
pkgs/ffigen/lib/src/config_provider/config_spec.dart |
pkgs/ffigen/lib/src/header_parser/clang_bindings/clang_bindings.dart |
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_decl_collision_bindings.dart |
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_symbol_address_collision_bindings.dart |
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_decl_type_name_collision_bindings.dart |
pkgs/ffigen/test/collision_tests/expected_bindings/_expected_reserved_keyword_collision_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_comment_markup_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_dart_handle_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_forward_decl_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_functions_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_imported_types_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_native_func_typedef_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_opaque_dependencies_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_packed_structs_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_regress_384_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_struct_fptr_fields_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_typedef_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_unions_bindings.dart |
pkgs/ffigen/test/header_parser_tests/expected_bindings/_expected_varargs_bindings.dart |
pkgs/ffigen/test/large_integration_tests/_expected_cjson_bindings.dart |
pkgs/ffigen/test/large_integration_tests/_expected_libclang_bindings.dart |
pkgs/ffigen/test/large_integration_tests/_expected_sqlite_bindings.dart |
pkgs/ffigen/test/native_test/_expected_native_test_bindings.dart |
pkgs/jni/lib/src/third_party/generated_bindings.dart |
pkgs/jni/lib/src/third_party/global_env_extensions.dart |
pkgs/jni/lib/src/third_party/jni_bindings_generated.dart |
pkgs/jnigen/android_test_runner/lib/main.dart |
pkgs/jnigen/example/kotlin_plugin/example/lib/main.dart |
pkgs/jnigen/example/kotlin_plugin/lib/kotlin_plugin.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/pdfbox_plugin.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/_init.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/pdmodel/_package.dart |
pkgs/jnigen/example/pdfbox_plugin/lib/src/third_party/org/apache/pdfbox/text/_package.dart |
pkgs/jnigen/lib/src/bindings/descriptor.dart |
pkgs/jnigen/lib/src/elements/elements.g.dart |
pkgs/jnigen/test/jackson_core_test/third_party/c_based/dart_bindings/com/fasterxml/jackson/core/_package.dart |
pkgs/jnigen/test/jackson_core_test/third_party/dart_only/dart_bindings/com/fasterxml/jackson/core/_package.dart |
pkgs/jnigen/tool/command_runner.dart |
This check can be disabled by tagging the PR with skip-license-check
Package publish validation ✔️
Details
Package | Version | Status |
---|---|---|
package:ffi | 2.1.2 | already published at pub.dev |
package:ffigen | 12.0.0-wip | WIP (no publish necessary) |
package:jni | 0.8.0-wip | WIP (no publish necessary) |
package:jnigen | 0.8.0-wip | WIP (no publish necessary) |
package:native_assets_builder | 0.5.0 | already published at pub.dev |
package:native_assets_cli | 0.4.3-wip | WIP (no publish necessary) |
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.
@mosuem is the redness here on the Health bot still bmw-tech/dart_apitool#177 ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My eyes! .pointer
.pointer
.pointer
I've reviewed jobject.dart and jreference.dart
Were there any other files meaningfully changed?
_finalizer.attach(this, _reference, detach: this); | ||
} | ||
|
||
sealed class JReference { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider abstract final
. sealed
promises exhaustiveness, which means adding things to the hierarchy later would be a breaking change.
https://dart.dev/language/modifier-reference
This potentially enables us to have multiple kinds of JReferences like JGlobalReference and JWeakGlobalReference or a global reference that is not managed by a native finalizer.
And it looks like we do want to introduce more types later.
@@ -1,5 +1,7 @@ | |||
## 0.8.0-wip | |||
|
|||
- **Breaking Change**: `JObject.reference` now returns a `JReference` instead of | |||
`Pointer<Void>`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe point to umbrella issue so that users know where to look for a rationale.
I will make the suggested changes in the following PR. No meaningful changes outside the two files you mentioned. Thanks @dcharkes! |
This is the first PR to refactor JObject as specified in #981 broken down to ease the review process.
.reference.pointer
, so in the following PRs this will be changed, so instead the "primitive" methods require aJReference
directly..fromRef
constructor still gets aPointer<Void>
, this will change to get aJReference
.JReference
s will be added.