1// Copyright 2022-present 650 Industries. All rights reserved. 2 3#import <ExpoModulesCore/EXJavaScriptTypedArray.h> 4#import <ExpoModulesCore/TypedArray.h> 5 6@implementation EXJavaScriptTypedArray { 7 __weak EXJavaScriptRuntime *_runtime; 8 9 std::shared_ptr<expo::TypedArray> _typedArrayPtr; 10} 11 12- (nonnull instancetype)initWith:(std::shared_ptr<jsi::Object>)jsObjectPtr 13 runtime:(EXJavaScriptRuntime *)runtime 14{ 15 if (self = [super initWith:jsObjectPtr runtime:runtime]) { 16 jsi::Runtime *rt = [runtime get]; 17 _runtime = runtime; 18 _typedArrayPtr = std::make_shared<expo::TypedArray>(*rt, *jsObjectPtr.get()); 19 _kind = (EXTypedArrayKind)_typedArrayPtr->getKind(*rt); 20 } 21 return self; 22} 23 24- (nonnull void *)getUnsafeMutableRawPointer 25{ 26 return _typedArrayPtr->getRawPointer(*[_runtime get]); 27} 28 29@end 30