Browse Source

typed arrays: re-export SizeOfArrayElementForType()

Although it is not used externally by node, it is needed by upstream and Plask.

This effectively reverts:

    commit 1444801374
    Author: Aaron Jacobs <jacobsa@google.com>
    Date:   Thu Mar 15 13:26:35 2012 +1100

        typed arrays: unexport SizeOfArrayElementForType()

        It isn't used anywhere else, so made it an implementation detail in
        v8_typed_array.cc.
v0.9.4-release
Dean McNamee 12 years ago
committed by Ben Noordhuis
parent
commit
ba00fb0199
  1. 44
      src/v8_typed_array.cc
  2. 2
      src/v8_typed_array.h

44
src/v8_typed_array.cc

@ -33,25 +33,6 @@ using node::ThrowRangeError;
using node::ThrowTypeError;
using node::ThrowError;
int SizeOfArrayElementForType(v8::ExternalArrayType type) {
switch (type) {
case v8::kExternalByteArray:
case v8::kExternalUnsignedByteArray:
return 1;
case v8::kExternalShortArray:
case v8::kExternalUnsignedShortArray:
return 2;
case v8::kExternalIntArray:
case v8::kExternalUnsignedIntArray:
case v8::kExternalFloatArray:
return 4;
case v8::kExternalDoubleArray:
return 8;
default:
return 0;
}
}
struct BatchedMethods {
const char* name;
v8::Handle<v8::Value> (*func)(const v8::Arguments& args);
@ -90,7 +71,7 @@ class ArrayBuffer {
v8::Object* obj = v8::Object::Cast(*value);
void* ptr = obj->GetIndexedPropertiesExternalArrayData();
int element_size = SizeOfArrayElementForType(
int element_size = v8_typed_array::SizeOfArrayElementForType(
obj->GetIndexedPropertiesExternalArrayDataType());
int size =
obj->GetIndexedPropertiesExternalArrayDataLength() * element_size;
@ -714,7 +695,7 @@ class DataView {
unsigned int index = args[0]->Uint32Value();
bool little_endian = args[1]->BooleanValue();
// TODO(deanm): All of these things should be cacheable.
int element_size = SizeOfArrayElementForType(
int element_size = v8_typed_array::SizeOfArrayElementForType(
args.This()->GetIndexedPropertiesExternalArrayDataType());
int size = args.This()->GetIndexedPropertiesExternalArrayDataLength() *
element_size;
@ -734,7 +715,7 @@ class DataView {
unsigned int index = args[0]->Int32Value();
bool little_endian = args[2]->BooleanValue();
// TODO(deanm): All of these things should be cacheable.
int element_size = SizeOfArrayElementForType(
int element_size = v8_typed_array::SizeOfArrayElementForType(
args.This()->GetIndexedPropertiesExternalArrayDataType());
int size = args.This()->GetIndexedPropertiesExternalArrayDataLength() *
element_size;
@ -844,6 +825,25 @@ void AttachBindings(v8::Handle<v8::Object> obj) {
DataView::GetTemplate()->GetFunction());
}
int SizeOfArrayElementForType(v8::ExternalArrayType type) {
switch (type) {
case v8::kExternalByteArray:
case v8::kExternalUnsignedByteArray:
return 1;
case v8::kExternalShortArray:
case v8::kExternalUnsignedShortArray:
return 2;
case v8::kExternalIntArray:
case v8::kExternalUnsignedIntArray:
case v8::kExternalFloatArray:
return 4;
case v8::kExternalDoubleArray:
return 8;
default:
return 0;
}
}
} // namespace v8_typed_array
NODE_MODULE(node_typed_array, v8_typed_array::AttachBindings)

2
src/v8_typed_array.h

@ -28,6 +28,8 @@ namespace v8_typed_array {
void AttachBindings(v8::Handle<v8::Object> obj);
int SizeOfArrayElementForType(v8::ExternalArrayType type);
} // namespace v8_typed_array
#endif // V8_TYPED_ARRAY_H_

Loading…
Cancel
Save