Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 3ec4433

Browse files
committed
moved over ios as well
1 parent 476a1ba commit 3ec4433

22 files changed

+58
-42
lines changed

fml/mapping.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,14 @@ void NonOwnedMapping::FreeProc(const uint8_t* data, size_t size) {
117117
free(const_cast<uint8_t*>(data));
118118
}
119119

120+
const uint8_t* NonOwnedMapping::Release() {
121+
const uint8_t* result = data_;
122+
data_ = nullptr;
123+
size_ = 0;
124+
release_proc_ = nullptr;
125+
return result;
126+
}
127+
120128
// Symbol Mapping
121129

122130
SymbolMapping::SymbolMapping(fml::RefPtr<fml::NativeLibrary> native_library,

fml/mapping.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ class NonOwnedMapping final : public Mapping {
136136
// |Mapping|
137137
const uint8_t* GetMapping() const override;
138138

139+
/// Removes ownership of the data buffer.
140+
const uint8_t* Release();
141+
142+
ReleaseProc GetReleaseProc() const { return release_proc_; }
143+
139144
private:
140145
const uint8_t* data_;
141146
size_t size_;

lib/ui/window/platform_message.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class PlatformMessage {
3131
return response_;
3232
}
3333

34+
fml::NonOwnedMapping releaseData() { return std::move(data_); }
35+
3436
private:
3537
std::string channel_;
3638
fml::NonOwnedMapping data_;

shell/common/shell.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1803,10 +1803,8 @@ bool Shell::ReloadSystemFonts() {
18031803
std::unique_ptr<PlatformMessage> fontsChangeMessage =
18041804
std::make_unique<flutter::PlatformMessage>(
18051805
kSystemChannel,
1806-
fml::NonOwnedMapping::Copy(
1807-
reinterpret_cast<const uint8_t*>(message.c_str()),
1808-
reinterpret_cast<const uint8_t*>(message.c_str() +
1809-
message.length())),
1806+
fml::NonOwnedMapping::Copy(message.c_str(),
1807+
message.c_str() + message.length()),
18101808
nullptr);
18111809

18121810
OnPlatformViewDispatchPlatformMessage(std::move(fontsChangeMessage));

shell/platform/common/accessibility_bridge.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,8 @@ gfx::RectF AccessibilityBridge::RelativeToGlobalBounds(const ui::AXNode* node,
539539
void AccessibilityBridge::DispatchAccessibilityAction(
540540
AccessibilityNodeId target,
541541
FlutterSemanticsAction action,
542-
std::vector<uint8_t> data) {
543-
delegate_->DispatchAccessibilityAction(target, action, data);
542+
fml::NonOwnedMapping data) {
543+
delegate_->DispatchAccessibilityAction(target, action, std::move(data));
544544
}
545545

546546
} // namespace flutter

shell/platform/common/accessibility_bridge.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include <unordered_map>
99

10+
#include "flutter/fml/mapping.h"
1011
#include "flutter/shell/platform/embedder/embedder.h"
1112

1213
#include "flutter/third_party/accessibility/ax/ax_event_generator.h"
@@ -86,10 +87,9 @@ class AccessibilityBridge
8687
/// @param[in] action The generated flutter semantics action.
8788
/// @param[in] data Additional data associated with the
8889
/// action.
89-
virtual void DispatchAccessibilityAction(
90-
AccessibilityNodeId target,
91-
FlutterSemanticsAction action,
92-
const std::vector<uint8_t>& data) = 0;
90+
virtual void DispatchAccessibilityAction(AccessibilityNodeId target,
91+
FlutterSemanticsAction action,
92+
fml::NonOwnedMapping data) = 0;
9393

9494
//---------------------------------------------------------------------------
9595
/// @brief Creates a platform specific FlutterPlatformNodeDelegate.
@@ -277,7 +277,7 @@ class AccessibilityBridge
277277
// |FlutterPlatformNodeDelegate::OwnerBridge|
278278
void DispatchAccessibilityAction(AccessibilityNodeId target,
279279
FlutterSemanticsAction action,
280-
std::vector<uint8_t> data) override;
280+
fml::NonOwnedMapping data) override;
281281

282282
// |FlutterPlatformNodeDelegate::OwnerBridge|
283283
gfx::RectF RelativeToGlobalBounds(const ui::AXNode* node,

shell/platform/common/flutter_platform_node_delegate.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
#ifndef FLUTTER_SHELL_PLATFORM_COMMON_FLUTTER_PLATFORM_NODE_DELEGATE_H_
66
#define FLUTTER_SHELL_PLATFORM_COMMON_FLUTTER_PLATFORM_NODE_DELEGATE_H_
77

8+
#include "flutter/fml/mapping.h"
89
#include "flutter/shell/platform/embedder/embedder.h"
9-
1010
#include "flutter/third_party/accessibility/ax/ax_event_generator.h"
1111
#include "flutter/third_party/accessibility/ax/platform/ax_platform_node_delegate_base.h"
1212

@@ -57,7 +57,7 @@ class FlutterPlatformNodeDelegate : public ui::AXPlatformNodeDelegateBase {
5757
/// action.
5858
virtual void DispatchAccessibilityAction(AccessibilityNodeId target,
5959
FlutterSemanticsAction action,
60-
std::vector<uint8_t> data) = 0;
60+
fml::NonOwnedMapping data) = 0;
6161

6262
//---------------------------------------------------------------------------
6363
/// @brief Get the native accessibility node with the given id.

shell/platform/common/test_accessibility_bridge.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void TestAccessibilityBridgeDelegate::OnAccessibilityEvent(
1919
void TestAccessibilityBridgeDelegate::DispatchAccessibilityAction(
2020
AccessibilityNodeId target,
2121
FlutterSemanticsAction action,
22-
const std::vector<uint8_t>& data) {
22+
fml::NonOwnedMapping data) {
2323
performed_actions.push_back(action);
2424
}
2525

shell/platform/common/test_accessibility_bridge.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class TestAccessibilityBridgeDelegate
1818
ui::AXEventGenerator::TargetedEvent targeted_event) override;
1919
void DispatchAccessibilityAction(AccessibilityNodeId target,
2020
FlutterSemanticsAction action,
21-
const std::vector<uint8_t>& data) override;
21+
fml::NonOwnedMapping data) override;
2222
std::unique_ptr<FlutterPlatformNodeDelegate>
2323
CreateFlutterPlatformNodeDelegate();
2424

shell/platform/darwin/common/buffer_conversions.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@
1313

1414
namespace flutter {
1515

16-
std::vector<uint8_t> GetVectorFromNSData(NSData* data);
16+
fml::NonOwnedMapping CopyNSDataToMapping(NSData* data);
1717

18-
NSData* GetNSDataFromVector(const std::vector<uint8_t>& buffer);
18+
NSData* CopyMappingToNSData(fml::NonOwnedMapping buffer);
1919

20-
std::unique_ptr<fml::Mapping> GetMappingFromNSData(NSData* data);
20+
std::unique_ptr<fml::Mapping> CopyNSDataToMappingPtr(NSData* data);
2121

22-
NSData* GetNSDataFromMapping(std::unique_ptr<fml::Mapping> mapping);
22+
NSData* CopyMappingPtrToNSData(std::unique_ptr<fml::Mapping> mapping);
2323

2424
} // namespace flutter
2525

0 commit comments

Comments
 (0)