@@ -8,28 +8,26 @@ using node::AliasedBuffer;
88class  AliasBufferTest  : public  NodeTestFixture  {};
99
1010template <class  NativeT >
11- void  CreateOracleValues (NativeT* buf,  size_t  count ) {
12-   for  (size_t  i = 0 , j = count ; i < count ; i++, j--) {
13-     buf[i] = static_cast <NativeT>(j);
11+ void  CreateOracleValues (std::vector< NativeT> * buf) {
12+   for  (size_t  i = 0 , j = buf-> size () ; i < buf-> size () ; i++, j--) {
13+     (* buf) [i] = static_cast <NativeT>(j);
1414  }
1515}
1616
1717template <class  NativeT , class  V8T >
1818void  WriteViaOperator (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
19-                       size_t  size,
20-                       NativeT* oracle) {
19+                       const  std::vector<NativeT>& oracle) {
2120  //  write through the API
22-   for  (size_t  i = 0 ; i < size; i++) {
21+   for  (size_t  i = 0 ; i < oracle. size () ; i++) {
2322    (*aliasedBuffer)[i] = oracle[i];
2423  }
2524}
2625
2726template <class  NativeT , class  V8T >
2827void  WriteViaSetValue (AliasedBuffer<NativeT, V8T>* aliasedBuffer,
29-                       size_t  size,
30-                       NativeT* oracle) {
28+                       const  std::vector<NativeT>& oracle) {
3129  //  write through the API
32-   for  (size_t  i = 0 ; i < size; i++) {
30+   for  (size_t  i = 0 ; i < oracle. size () ; i++) {
3331    aliasedBuffer->SetValue (i, oracle[i]);
3432  }
3533}
@@ -38,27 +36,26 @@ template<class NativeT, class V8T>
3836void  ReadAndValidate (v8::Isolate* isolate,
3937                     v8::Local<v8::Context> context,
4038                     AliasedBuffer<NativeT, V8T>* aliasedBuffer,
41-                      size_t  size,
42-                      NativeT* oracle) {
39+                      const  std::vector<NativeT>& oracle) {
4340  //  read through the API
44-   for  (size_t  i = 0 ; i < size; i++) {
41+   for  (size_t  i = 0 ; i < oracle. size () ; i++) {
4542    NativeT v1 = (*aliasedBuffer)[i];
4643    NativeT v2 = aliasedBuffer->GetValue (i);
4744    EXPECT_TRUE (v1 == oracle[i]);
4845    EXPECT_TRUE (v2 == oracle[i]);
4946  }
5047
5148  //  validate size of JS Buffer
52-   EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == size);
49+   EXPECT_TRUE (aliasedBuffer->GetJSArray ()->Length () == oracle. size () );
5350  EXPECT_TRUE (
5451    aliasedBuffer->GetJSArray ()->ByteLength () ==
55-     (size * sizeof (NativeT)));
52+     (oracle. size ()  * sizeof (NativeT)));
5653
5754  //  validate operator * and GetBuffer are the same
5855  EXPECT_TRUE (aliasedBuffer->GetNativeBuffer () == *(*aliasedBuffer));
5956
6057  //  read through the JS API
61-   for  (size_t  i = 0 ; i < size; i++) {
58+   for  (size_t  i = 0 ; i < oracle. size () ; i++) {
6259    v8::Local<V8T> v8TypedArray = aliasedBuffer->GetJSArray ();
6360    v8::MaybeLocal<v8::Value> v = v8TypedArray->Get (context, i);
6461    EXPECT_TRUE (v.IsEmpty () == false );
@@ -80,21 +77,19 @@ void ReadWriteTest(v8::Isolate* isolate) {
8077
8178  const  size_t  size = 100 ;
8279  AliasedBuffer<NativeT, V8T> ab (isolate, size);
83-   NativeT*  oracle =  new  NativeT[ size] ;
84-   CreateOracleValues (oracle, size );
85-   WriteViaOperator (&ab, size,  oracle);
86-   ReadAndValidate (isolate, context, &ab, size,  oracle);
80+   std::vector< NativeT>  oracle ( size) ;
81+   CreateOracleValues (& oracle);
82+   WriteViaOperator (&ab, oracle);
83+   ReadAndValidate (isolate, context, &ab, oracle);
8784
88-   WriteViaSetValue (&ab, size,  oracle);
85+   WriteViaSetValue (&ab, oracle);
8986
9087  //  validate copy constructor
9188  {
9289    AliasedBuffer<NativeT, V8T> ab2 (ab);
93-     ReadAndValidate (isolate, context, &ab2, size,  oracle);
90+     ReadAndValidate (isolate, context, &ab2, oracle);
9491  }
95-   ReadAndValidate (isolate, context, &ab, size, oracle);
96- 
97-   delete[]  oracle;
92+   ReadAndValidate (isolate, context, &ab, oracle);
9893}
9994
10095template <
@@ -124,28 +119,28 @@ void SharedBufferTest(
124119  AliasedBuffer<NativeT_C, V8T_C> ab_C (
125120      isolate, sizeInBytes_A + sizeInBytes_B, count_C, rootBuffer);
126121
127-   NativeT_A*  oracle_A =  new  NativeT_A[ count_A] ;
128-   NativeT_B*  oracle_B =  new  NativeT_B[ count_B] ;
129-   NativeT_C*  oracle_C =  new  NativeT_C[ count_C] ;
130-   CreateOracleValues (oracle_A, count_A );
131-   CreateOracleValues (oracle_B, count_B );
132-   CreateOracleValues (oracle_C, count_C );
122+   std::vector< NativeT_A>  oracle_A ( count_A) ;
123+   std::vector< NativeT_B>  oracle_B ( count_B) ;
124+   std::vector< NativeT_C>  oracle_C ( count_C) ;
125+   CreateOracleValues (& oracle_A);
126+   CreateOracleValues (& oracle_B);
127+   CreateOracleValues (& oracle_C);
133128
134-   WriteViaOperator (&ab_A, count_A,  oracle_A);
135-   WriteViaOperator (&ab_B, count_B,  oracle_B);
136-   WriteViaOperator (&ab_C, count_C,  oracle_C);
129+   WriteViaOperator (&ab_A, oracle_A);
130+   WriteViaOperator (&ab_B, oracle_B);
131+   WriteViaOperator (&ab_C, oracle_C);
137132
138-   ReadAndValidate (isolate, context, &ab_A, count_A,  oracle_A);
139-   ReadAndValidate (isolate, context, &ab_B, count_B,  oracle_B);
140-   ReadAndValidate (isolate, context, &ab_C, count_C,  oracle_C);
133+   ReadAndValidate (isolate, context, &ab_A, oracle_A);
134+   ReadAndValidate (isolate, context, &ab_B, oracle_B);
135+   ReadAndValidate (isolate, context, &ab_C, oracle_C);
141136
142-   WriteViaSetValue (&ab_A, count_A,  oracle_A);
143-   WriteViaSetValue (&ab_B, count_B,  oracle_B);
144-   WriteViaSetValue (&ab_C, count_C,  oracle_C);
137+   WriteViaSetValue (&ab_A, oracle_A);
138+   WriteViaSetValue (&ab_B, oracle_B);
139+   WriteViaSetValue (&ab_C, oracle_C);
145140
146-   ReadAndValidate (isolate, context, &ab_A, count_A,  oracle_A);
147-   ReadAndValidate (isolate, context, &ab_B, count_B,  oracle_B);
148-   ReadAndValidate (isolate, context, &ab_C, count_C,  oracle_C);
141+   ReadAndValidate (isolate, context, &ab_A, oracle_A);
142+   ReadAndValidate (isolate, context, &ab_B, oracle_B);
143+   ReadAndValidate (isolate, context, &ab_C, oracle_C);
149144}
150145
151146TEST_F (AliasBufferTest, Uint8Array) {
0 commit comments