)]}'
{
  "commit": "de267d35fbb4112b73b2544e0339030024c2cefa",
  "tree": "3af3e31727f381828a0ae0e4d7985435567633a2",
  "parents": [
    "c1bdc81caae391e5420d1541e4322278e23dcc23"
  ],
  "author": {
    "name": "hellohuanlin",
    "email": "41930132+hellohuanlin@users.noreply.github.com",
    "time": "Thu Jan 20 15:16:26 2022 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Jan 20 15:16:26 2022 -0800"
  },
  "message": "[camera]call engine API in main thread to fix a crash (#4661)\n\n* [camera]call engine API in main thread to fix a crash\r\n\r\n* [camera]addess a few comments by moving XCTestExpectations to each test cases, and update wrappers comment\r\n\r\n* [camera]remove setUp function in tests, and update comments for thread safe wrappers\r\n\r\n* [camera]handle event channel\u0027s threading properly\r\n\r\n* [camera]address various nits, mainly the test expectation refactor and QueueHelper refactor",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1a6eceb957b1bb5bc0dd2cdbce8dfce04b22ae9b",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/CHANGELOG.md",
      "new_id": "e9db5de89e54a55c2dd6f13db74f64d30aa0f891",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "feb789f2ecba62cc7d767a1ed420d46896ec8ff2",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/example/ios/Runner.xcodeproj/project.pbxproj",
      "new_id": "32b770eb67832825fb9cc4751baaabf851da404b",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/Runner.xcodeproj/project.pbxproj"
    },
    {
      "type": "modify",
      "old_id": "1447e08231be7c46586f4d7c96d4ebebf36234f2",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme",
      "new_id": "f4b3c10990012609efb6cc95ddb25366ad87f0af",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c5f377f7efa965fe49b166437b466f6b1a7a78d2",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/RunnerTests/QueueHelperTests.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dd7ca39c2e987c349ac86766cef1d4ae39d81c88",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/RunnerTests/ThreadSafeEventChannelTests.m"
    },
    {
      "type": "modify",
      "old_id": "8cd4b8bc8c2a23dfea143159ba2ab0588d51608c",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/example/ios/RunnerTests/ThreadSafeFlutterResultTests.m",
      "new_id": "a01b53154f625129f03a5483a2c75ec5be4b2039",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/RunnerTests/ThreadSafeFlutterResultTests.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5075be7a81e2932bae3f7ecdf2f094364f105226",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/RunnerTests/ThreadSafeMethodChannelTests.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "067ebab3642f0764164793f2da3ee90d7e817a2f",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/example/ios/RunnerTests/ThreadSafeTextureRegistryTests.m"
    },
    {
      "type": "modify",
      "old_id": "2c12081da807e5567823299c8460257941003450",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/ios/Classes/CameraPlugin.m",
      "new_id": "09b5f0ff2e307af4213ecbb5a6d235e1d26fdc99",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/CameraPlugin.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ddfa75487a2882b32991809d3a4c459aea23474b",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeEventChannel.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "02a36f152bd84986e4291850c41443394c3df5fe",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeEventChannel.m"
    },
    {
      "type": "modify",
      "old_id": "f290ca0fcd055903fe64a84b42f787e20209949f",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/ios/Classes/FLTThreadSafeFlutterResult.h",
      "new_id": "787be4c8facacb0b67cd67821986b46871679891",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeFlutterResult.h"
    },
    {
      "type": "modify",
      "old_id": "caa4788d8dc81dc6c30f1ebaa2e0f40da23ed85e",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/ios/Classes/FLTThreadSafeFlutterResult.m",
      "new_id": "2e426ccbe3373fdd656edf3acb72684372a7e8d1",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeFlutterResult.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f6611db03ce64e37e243f3d5348403ff8d15eeb",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeMethodChannel.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad4da87c8e91240f9a543c106914663a9983515d",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeMethodChannel.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "030e2dbc7818ba78d422ee350c8a702759a79840",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeTextureRegistry.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5eb2443e4ee2040784f2692871266ec6652c88a5",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/FLTThreadSafeTextureRegistry.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c2548148c499798a69005c54fe3eb4333b0372ab",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/QueueHelper.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "194dfa9cfb95b59a56929c87bd9e295b34ef6726",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/QueueHelper.m"
    },
    {
      "type": "modify",
      "old_id": "b0fd493b24df75c168b43d7e6a24e3c3e8338303",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/ios/Classes/camera-umbrella.h",
      "new_id": "428b125d3a437ad322b3e67911b5bf6636e9073e",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/ios/Classes/camera-umbrella.h"
    },
    {
      "type": "modify",
      "old_id": "58e1ca3ca98c9cc7054d9b57e29c27cff6db7bb0",
      "old_mode": 33188,
      "old_path": "packages/camera/camera/pubspec.yaml",
      "new_id": "4c6c7e7e52d13b37dcc3242cee01958d4cd18b1f",
      "new_mode": 33188,
      "new_path": "packages/camera/camera/pubspec.yaml"
    }
  ]
}
