Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

typed arrays: re-export SizeOfArrayElementForType()

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

This effectively reverts:

    commit 1444801
    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.
  • Loading branch information...
commit ba00fb01996f275412713fe78f4bb43239bcf714 1 parent a3877ab
@deanm deanm authored bnoordhuis committed
Showing with 24 additions and 22 deletions.
  1. +22 −22 src/v8_typed_array.cc
  2. +2 −0  src/v8_typed_array.h
View
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)
View
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_
Please sign in to comment.
Something went wrong with that request. Please try again.