Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add glue for header-inlined typed array functions that cause linker e… #180

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file
Failed to load files.

Always

Just for now

@@ -1,4 +1,8 @@
use jsapi::*;
use jsapi::{JSContext, JSObject, HandleObject, HandleValue, HandleId, JSString, jsid, JSJitInfo};
use jsapi::{JSRuntime, JSFunction, JSErrorFormatString, AutoObjectVector, Value, MutableHandle};
use jsapi::{ReadOnlyCompileOptions, JSPropertyDescriptor, FreeOp, JSType, ESClassValue};
use jsapi::{CallArgs, AutoIdVector, ObjectOpResult, MutableHandleObject, Handle, MutableHandleValue};
use jsapi::{JSTracer, ServoSizes, IsAcceptableThis, NativeImpl};

pub const JS_STRUCTURED_CLONE_VERSION: u32 = 5;

@@ -230,4 +234,37 @@ extern "C" {
obj: *mut JSObject) -> u8;
pub fn DeleteAutoObjectVector(v: *mut AutoObjectVector);
pub fn CollectServoSizes(rt: *mut JSRuntime, sizes: *mut ServoSizes) -> bool;
pub fn GetUint8ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u8);
pub fn GetUint16ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u16);
pub fn GetUint32ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u32);
pub fn GetInt8ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut i8);
pub fn GetInt16ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut i16);
pub fn GetInt32ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut i32);
pub fn GetUint8ClampedArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u8);
pub fn GetFloat32ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut f32);
pub fn GetFloat64ArrayLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut f64);
pub fn GetArrayBufferLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u8);
pub fn GetArrayBufferViewLengthAndData(obj: *mut JSObject,
length: *mut u32,
data: *mut *mut u8);
}
@@ -669,4 +669,70 @@ CollectServoSizes(JSRuntime *rt, JS::ServoSizes *sizes)
/* ObjectPrivateVisitor = */ nullptr, sizes);
}

void
GetUint8ClampedArrayLengthAndData(JSObject* obj, uint32_t* length, uint8_t** data)
{
js::GetUint8ClampedArrayLengthAndData(obj, length, data);
}

void
GetUint8ArrayLengthAndData(JSObject* obj, uint32_t* length, uint8_t** data)
{
js::GetUint8ArrayLengthAndData(obj, length, data);
}

void
GetUint16ArrayLengthAndData(JSObject* obj, uint32_t* length, uint16_t** data)
{
js::GetUint16ArrayLengthAndData(obj, length, data);
}

void
GetUint32ArrayLengthAndData(JSObject* obj, uint32_t* length, uint32_t** data)
{
js::GetUint32ArrayLengthAndData(obj, length, data);
}

void
GetInt8ArrayLengthAndData(JSObject* obj, uint32_t* length, int8_t** data)
{
js::GetInt8ArrayLengthAndData(obj, length, data);
}

void
GetInt16ArrayLengthAndData(JSObject* obj, uint32_t* length, int16_t** data)
{
js::GetInt16ArrayLengthAndData(obj, length, data);
}

void
GetInt32ArrayLengthAndData(JSObject* obj, uint32_t* length, int32_t** data)
{
js::GetInt32ArrayLengthAndData(obj, length, data);
}

void
GetFloat32ArrayLengthAndData(JSObject* obj, uint32_t* length, float** data)
{
js::GetFloat32ArrayLengthAndData(obj, length, data);
}

void
GetFloat64ArrayLengthAndData(JSObject* obj, uint32_t* length, double** data)
{
js::GetFloat64ArrayLengthAndData(obj, length, data);
}

void
GetArrayBufferLengthAndData(JSObject* obj, uint32_t* length, uint8_t** data)
{
js::GetArrayBufferLengthAndData(obj, length, data);
}

void
GetArrayBufferViewLengthAndData(JSObject* obj, uint32_t* length, uint8_t** data)
{
js::GetArrayBufferViewLengthAndData(obj, length, data);
}

} // extern "C"
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.