Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: software-mansion/react-native-reanimated
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.16.3
Choose a base ref
...
head repository: software-mansion/react-native-reanimated
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.16.4
Choose a head ref
  • 5 commits
  • 11 files changed
  • 5 contributors

Commits on Dec 9, 2024

  1. fix: brownfield integration (#6774)

    ## Summary
    
    In brownfield, ` // we need only one instance because SurfacePresenter
    is the same during the application lifetime` is false since you can
    destroy RN and create it again.
    
    ## Test plan
    Run Reanimated in brownfield and try to create and destroy the whole RN
    a couple of times.
    WoLewicki authored and tomekzaw committed Dec 9, 2024
    Configuration menu
    Copy the full SHA
    34fa4de View commit details
    Browse the repository at this point in the history
  2. fix: Empty array & null checks in handleTabNavigatorChange method fixes

    #6698 (#6700)
    
    Fixes:  Shared Element Transition (Solution provided) #6698 
    
    Add safety checks in handleTabNavigatorChange to prevent crash
    
    This fixes a crash that occurs when _disappearingScreens array is empty
    or
    contains invalid objects by adding appropriate null checks and bounds
    checking.
    
    The crash would occur when:
    - The _disappearingScreens array is empty
    - navTabScreen or its reactSuperview is null
    - targetScreen is null
    
    App was crashing during shared element transition because of invalid
    array access.
    
    Fixes #6698
    
    ---------
    
    Co-authored-by: Krzysztof Piaskowy <krzysztof.piaskowy@swmansion.com>
    2 people authored and tomekzaw committed Dec 9, 2024
    Configuration menu
    Copy the full SHA
    7a16ea6 View commit details
    Browse the repository at this point in the history
  3. Fix crash caused by using ShareableHandle in multiple remote runtim…

    …es (#6796)
    
    ## Summary
    Fixes
    Expensify/react-native-live-markdown#574. See
    root cause analysis in
    Expensify/react-native-live-markdown#574 (comment).
    
    This PR fixes a crash caused by calling `ShareableHandle::toJSValue`
    with second remote runtime after initializing `remoteValue_` with a
    `jsi::Value` belonging to the first remote runtime.
    
    I assume that this is a rare scenario so we only memoize the value for
    the first remote runtime and we recreate the value for all subsequent
    runtimes.
    
    ## Test plan
    
    Reproduction:
    
    <details>
    <summary>EmptyExample.tsx</summary>
    
    ```tsx
    import { Text, StyleSheet, View } from 'react-native';
    
    import React from 'react';
    import {
      createWorkletRuntime,
      runOnRuntime,
      useAnimatedStyle,
    } from 'react-native-reanimated';
    
    const regex = /\d/;
    
    const workletRuntime = createWorkletRuntime('another');
    
    export default function EmptyExample() {
      useAnimatedStyle(() => {
        console.log('useAnimatedStyle', String(regex));
        return {};
      });
    
      runOnRuntime(workletRuntime, () => {
        'worklet';
        console.log('runOnRuntime', String(regex));
        return {};
      })();
    
      return (
        <View style={styles.container}>
          <Text>Hello world!</Text>
        </View>
      );
    }
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'center',
      },
    });
    ```
    
    </details>
    tomekzaw committed Dec 9, 2024
    Configuration menu
    Copy the full SHA
    d94a8a7 View commit details
    Browse the repository at this point in the history
  4. Clear operationsInBatch_ before terminating UI runtime (#6779)

    ## Summary
    
    This PR fixes the following crash that happens during a reload due to
    `jsi::Value` outliving the UI runtime.
    
    The offending `jsi::Value` comes from `operationsInBatch_` inside
    `ReanimatedModuleProxy` (formerly `NativeReanimatedModule`.
    
    In `~ReanimatedModuleProxy` we manually clear data structures containing
    `jsi::Value` prior to resetting `uiWorkletRuntime_` which effectively
    terminates the runtimes. It looks like we forgot about
    `operationsInBatch_`.
    
    <img width="1624" alt="Screenshot 2024-12-02 at 13 00 08"
    src="https://github.com/user-attachments/assets/23c8df28-885e-45e7-b88c-779edc3c4fb5">
    
    ## Test plan
    
    1. Launch FabricExample app
    2. Reload the app several times
    3. Repeat steps 1 and 2 several times
    tomekzaw committed Dec 9, 2024
    Configuration menu
    Copy the full SHA
    b97ba4f View commit details
    Browse the repository at this point in the history
  5. Release 3.16.4

    tomekzaw committed Dec 9, 2024
    Configuration menu
    Copy the full SHA
    f612edd View commit details
    Browse the repository at this point in the history
Loading