Skip to content

Migrate BlobModule to TurboModuleWithJSIBindings for safe JSI access (#56272)#56272

Closed
javache wants to merge 1 commit intofacebook:mainfrom
javache:export-D98712509
Closed

Migrate BlobModule to TurboModuleWithJSIBindings for safe JSI access (#56272)#56272
javache wants to merge 1 commit intofacebook:mainfrom
javache:export-D98712509

Conversation

@javache
Copy link
Copy Markdown
Member

@javache javache commented Mar 30, 2026

Summary:

BlobCollector::nativeInstall received a raw jlong pointer to jsi::Runtime from Java and cast it directly, with no thread safety. Migrated BlobModule to implement TurboModuleWithJSIBindings, which provides a safe getBindingsInstaller() callback guaranteed to run on the JS thread during module initialization. Removed the unsafe raw pointer path.

Changelog: [Internal]

Reviewed By: alanleedev

Differential Revision: D98712509

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 30, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync bot commented Mar 30, 2026

@javache has exported this pull request. If you are a Meta employee, you can view the originating Diff in D98712509.

@meta-codesync meta-codesync bot changed the title Migrate BlobModule to TurboModuleWithJSIBindings for safe JSI access Migrate BlobModule to TurboModuleWithJSIBindings for safe JSI access (#56272) Apr 8, 2026
@javache javache force-pushed the export-D98712509 branch from 8345c0b to fd9bb0b Compare April 8, 2026 11:50
javache added a commit to javache/react-native that referenced this pull request Apr 8, 2026
…acebook#56272)

Summary:

BlobCollector::nativeInstall received a raw jlong pointer to jsi::Runtime from Java and cast it directly, with no thread safety. Migrated BlobModule to implement TurboModuleWithJSIBindings, which provides a safe getBindingsInstaller() callback guaranteed to run on the JS thread during module initialization. Removed the unsafe raw pointer path.

Changelog: [Internal]

Reviewed By: alanleedev

Differential Revision: D98712509
@javache javache force-pushed the export-D98712509 branch 2 times, most recently from 00ec4e4 to 61946a5 Compare April 8, 2026 12:27
…acebook#56272)

Summary:
Pull Request resolved: facebook#56272

BlobCollector::nativeInstall received a raw jlong pointer to jsi::Runtime from Java and cast it directly, with no thread safety. Migrated BlobModule to implement TurboModuleWithJSIBindings, which provides a safe getBindingsInstaller() callback guaranteed to run on the JS thread during module initialization. Removed the unsafe raw pointer path.

Changelog: [Internal]

Reviewed By: alanleedev

Differential Revision: D98712509
@javache javache force-pushed the export-D98712509 branch from 61946a5 to 5f0c857 Compare April 8, 2026 12:31
@meta-codesync meta-codesync bot closed this in b20d7fc Apr 9, 2026
@meta-codesync
Copy link
Copy Markdown

meta-codesync bot commented Apr 9, 2026

This pull request has been merged in b20d7fc.

@facebook-github-tools facebook-github-tools bot added the Merged This PR has been merged. label Apr 9, 2026
@react-native-bot
Copy link
Copy Markdown
Collaborator

This pull request was successfully merged by @javache in b20d7fc

When will my fix make it into a release? | How to file a pick request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported Merged This PR has been merged. meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants