Skip to content

Commit f2fa97f

Browse files
committed
crypto: Remove many unnecessary toObjects
1 parent d7da20c commit f2fa97f

File tree

1 file changed

+46
-62
lines changed

1 file changed

+46
-62
lines changed

src/node_crypto.cc

+46-62
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,8 @@ static BIO* LoadBIO (Handle<Value> v) {
286286
String::Utf8Value s(v);
287287
r = BIO_write(bio, *s, s.length());
288288
} else if (Buffer::HasInstance(v)) {
289-
Local<Object> buffer_obj = v->ToObject();
290-
char *buffer_data = Buffer::Data(buffer_obj);
291-
size_t buffer_length = Buffer::Length(buffer_obj);
289+
char *buffer_data = Buffer::Data(v);
290+
size_t buffer_length = Buffer::Length(v);
292291
r = BIO_write(bio, buffer_data, buffer_length);
293292
}
294293

@@ -659,7 +658,7 @@ Handle<Value> SecureContext::LoadPKCS12(const Arguments& args) {
659658
if (args.Length() >= 2) {
660659
ASSERT_IS_BUFFER(args[1]);
661660

662-
int passlen = Buffer::Length(args[1]->ToObject());
661+
int passlen = Buffer::Length(args[1]);
663662
if (passlen < 0) {
664663
BIO_free(in);
665664
return ThrowException(Exception::TypeError(
@@ -1283,9 +1282,8 @@ Handle<Value> Connection::EncIn(const Arguments& args) {
12831282
String::New("Second argument should be a buffer")));
12841283
}
12851284

1286-
Local<Object> buffer_obj = args[0]->ToObject();
1287-
char *buffer_data = Buffer::Data(buffer_obj);
1288-
size_t buffer_length = Buffer::Length(buffer_obj);
1285+
char *buffer_data = Buffer::Data(args[0]);
1286+
size_t buffer_length = Buffer::Length(args[0]);
12891287

12901288
size_t off = args[1]->Int32Value();
12911289
if (off >= buffer_length) {
@@ -1330,9 +1328,8 @@ Handle<Value> Connection::ClearOut(const Arguments& args) {
13301328
String::New("Second argument should be a buffer")));
13311329
}
13321330

1333-
Local<Object> buffer_obj = args[0]->ToObject();
1334-
char *buffer_data = Buffer::Data(buffer_obj);
1335-
size_t buffer_length = Buffer::Length(buffer_obj);
1331+
char *buffer_data = Buffer::Data(args[0]);
1332+
size_t buffer_length = Buffer::Length(args[0]);
13361333

13371334
size_t off = args[1]->Int32Value();
13381335
if (off >= buffer_length) {
@@ -1403,9 +1400,8 @@ Handle<Value> Connection::EncOut(const Arguments& args) {
14031400
String::New("Second argument should be a buffer")));
14041401
}
14051402

1406-
Local<Object> buffer_obj = args[0]->ToObject();
1407-
char *buffer_data = Buffer::Data(buffer_obj);
1408-
size_t buffer_length = Buffer::Length(buffer_obj);
1403+
char *buffer_data = Buffer::Data(args[0]);
1404+
size_t buffer_length = Buffer::Length(args[0]);
14091405

14101406
size_t off = args[1]->Int32Value();
14111407
if (off >= buffer_length) {
@@ -1443,9 +1439,8 @@ Handle<Value> Connection::ClearIn(const Arguments& args) {
14431439
String::New("Second argument should be a buffer")));
14441440
}
14451441

1446-
Local<Object> buffer_obj = args[0]->ToObject();
1447-
char *buffer_data = Buffer::Data(buffer_obj);
1448-
size_t buffer_length = Buffer::Length(buffer_obj);
1442+
char *buffer_data = Buffer::Data(args[0]);
1443+
size_t buffer_length = Buffer::Length(args[0]);
14491444

14501445
size_t off = args[1]->Int32Value();
14511446
if (off > buffer_length) {
@@ -1628,7 +1623,7 @@ Handle<Value> Connection::SetSession(const Arguments& args) {
16281623
}
16291624

16301625
ASSERT_IS_BUFFER(args[0]);
1631-
ssize_t slen = Buffer::Length(args[0]->ToObject());
1626+
ssize_t slen = Buffer::Length(args[0]);
16321627

16331628
if (slen < 0) {
16341629
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2130,7 +2125,7 @@ class Cipher : public ObjectWrap {
21302125
}
21312126

21322127
ASSERT_IS_BUFFER(args[1]);
2133-
ssize_t key_buf_len = Buffer::Length(args[1]->ToObject());
2128+
ssize_t key_buf_len = Buffer::Length(args[1]);
21342129

21352130
if (key_buf_len < 0) {
21362131
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2171,15 +2166,15 @@ class Cipher : public ObjectWrap {
21712166
}
21722167

21732168
ASSERT_IS_BUFFER(args[1]);
2174-
ssize_t key_len = Buffer::Length(args[1]->ToObject());
2169+
ssize_t key_len = Buffer::Length(args[1]);
21752170

21762171
if (key_len < 0) {
21772172
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
21782173
return ThrowException(exception);
21792174
}
21802175

21812176
ASSERT_IS_BUFFER(args[2]);
2182-
ssize_t iv_len = Buffer::Length(args[2]->ToObject());
2177+
ssize_t iv_len = Buffer::Length(args[2]);
21832178

21842179
if (iv_len < 0) {
21852180
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2217,9 +2212,8 @@ class Cipher : public ObjectWrap {
22172212

22182213
unsigned char *out=0;
22192214
int out_len=0, r;
2220-
Local<Object> buffer_obj = args[0]->ToObject();
2221-
char *buffer_data = Buffer::Data(buffer_obj);
2222-
size_t buffer_length = Buffer::Length(buffer_obj);
2215+
char* buffer_data = Buffer::Data(args[0]);
2216+
size_t buffer_length = Buffer::Length(args[0]);
22232217

22242218
r = cipher->CipherUpdate(buffer_data, buffer_length, &out, &out_len);
22252219

@@ -2443,7 +2437,7 @@ class Decipher : public ObjectWrap {
24432437
}
24442438

24452439
ASSERT_IS_BUFFER(args[1]);
2446-
ssize_t key_len = Buffer::Length(args[1]->ToObject());
2440+
ssize_t key_len = Buffer::Length(args[1]);
24472441

24482442
if (key_len < 0) {
24492443
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2482,15 +2476,15 @@ class Decipher : public ObjectWrap {
24822476
}
24832477

24842478
ASSERT_IS_BUFFER(args[1]);
2485-
ssize_t key_len = Buffer::Length(args[1]->ToObject());
2479+
ssize_t key_len = Buffer::Length(args[1]);
24862480

24872481
if (key_len < 0) {
24882482
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
24892483
return ThrowException(exception);
24902484
}
24912485

24922486
ASSERT_IS_BUFFER(args[2]);
2493-
ssize_t iv_len = Buffer::Length(args[2]->ToObject());
2487+
ssize_t iv_len = Buffer::Length(args[2]);
24942488

24952489
if (iv_len < 0) {
24962490
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2531,9 +2525,8 @@ class Decipher : public ObjectWrap {
25312525
char* buf;
25322526
// if alloc_buf then buf must be deleted later
25332527
bool alloc_buf = false;
2534-
Local<Object> buffer_obj = args[0]->ToObject();
2535-
char *buffer_data = Buffer::Data(buffer_obj);
2536-
size_t buffer_length = Buffer::Length(buffer_obj);
2528+
char *buffer_data = Buffer::Data(args[0]);
2529+
size_t buffer_length = Buffer::Length(args[0]);
25372530

25382531
buf = buffer_data;
25392532
len = buffer_length;
@@ -2682,7 +2675,7 @@ class Hmac : public ObjectWrap {
26822675
}
26832676

26842677
ASSERT_IS_BUFFER(args[1]);
2685-
ssize_t len = Buffer::Length(args[1]->ToObject());
2678+
ssize_t len = Buffer::Length(args[1]);
26862679

26872680
if (len < 0) {
26882681
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -2694,9 +2687,8 @@ class Hmac : public ObjectWrap {
26942687
bool r;
26952688

26962689
if( Buffer::HasInstance(args[1])) {
2697-
Local<Object> buffer_obj = args[1]->ToObject();
2698-
char* buffer_data = Buffer::Data(buffer_obj);
2699-
size_t buffer_length = Buffer::Length(buffer_obj);
2690+
char* buffer_data = Buffer::Data(args[1]);
2691+
size_t buffer_length = Buffer::Length(args[1]);
27002692

27012693
r = hmac->HmacInit(*hashType, buffer_data, buffer_length);
27022694
} else {
@@ -2725,9 +2717,8 @@ class Hmac : public ObjectWrap {
27252717

27262718
int r;
27272719

2728-
Local<Object> buffer_obj = args[0]->ToObject();
2729-
char *buffer_data = Buffer::Data(buffer_obj);
2730-
size_t buffer_length = Buffer::Length(buffer_obj);
2720+
char *buffer_data = Buffer::Data(args[0]);
2721+
size_t buffer_length = Buffer::Length(args[0]);
27312722

27322723
r = hmac->HmacUpdate(buffer_data, buffer_length);
27332724

@@ -2841,9 +2832,8 @@ class Hash : public ObjectWrap {
28412832

28422833
int r;
28432834

2844-
Local<Object> buffer_obj = args[0]->ToObject();
2845-
char *buffer_data = Buffer::Data(buffer_obj);
2846-
size_t buffer_length = Buffer::Length(buffer_obj);
2835+
char *buffer_data = Buffer::Data(args[0]);
2836+
size_t buffer_length = Buffer::Length(args[0]);
28472837
r = hash->HashUpdate(buffer_data, buffer_length);
28482838

28492839
if (!r) {
@@ -2994,9 +2984,8 @@ class Sign : public ObjectWrap {
29942984

29952985
int r;
29962986

2997-
Local<Object> buffer_obj = args[0]->ToObject();
2998-
char *buffer_data = Buffer::Data(buffer_obj);
2999-
size_t buffer_length = Buffer::Length(buffer_obj);
2987+
char *buffer_data = Buffer::Data(args[0]);
2988+
size_t buffer_length = Buffer::Length(args[0]);
30002989

30012990
r = sign->SignUpdate(buffer_data, buffer_length);
30022991

@@ -3021,7 +3010,7 @@ class Sign : public ObjectWrap {
30213010
md_value = new unsigned char[md_len];
30223011

30233012
ASSERT_IS_BUFFER(args[0]);
3024-
ssize_t len = Buffer::Length(args[0]->ToObject());
3013+
ssize_t len = Buffer::Length(args[0]);
30253014

30263015
char* buf = new char[len];
30273016
ssize_t written = DecodeWrite(buf, len, args[0], BUFFER);
@@ -3206,9 +3195,8 @@ class Verify : public ObjectWrap {
32063195

32073196
int r;
32083197

3209-
Local<Object> buffer_obj = args[0]->ToObject();
3210-
char *buffer_data = Buffer::Data(buffer_obj);
3211-
size_t buffer_length = Buffer::Length(buffer_obj);
3198+
char *buffer_data = Buffer::Data(args[0]);
3199+
size_t buffer_length = Buffer::Length(args[0]);
32123200

32133201
r = verify->VerifyUpdate(buffer_data, buffer_length);
32143202

@@ -3227,7 +3215,7 @@ class Verify : public ObjectWrap {
32273215
Verify *verify = ObjectWrap::Unwrap<Verify>(args.This());
32283216

32293217
ASSERT_IS_BUFFER(args[0]);
3230-
ssize_t klen = Buffer::Length(args[0]->ToObject());
3218+
ssize_t klen = Buffer::Length(args[0]);
32313219

32323220
if (klen < 0) {
32333221
Local<Value> exception = Exception::TypeError(String::New("Bad argument"));
@@ -3239,7 +3227,7 @@ class Verify : public ObjectWrap {
32393227
assert(kwritten == klen);
32403228

32413229
ASSERT_IS_BUFFER(args[1]);
3242-
ssize_t hlen = Buffer::Length(args[1]->ToObject());
3230+
ssize_t hlen = Buffer::Length(args[1]);
32433231

32443232
if (hlen < 0) {
32453233
delete [] kbuf;
@@ -3384,10 +3372,9 @@ class DiffieHellman : public ObjectWrap {
33843372
if (args[0]->IsInt32()) {
33853373
initialized = diffieHellman->Init(args[0]->Int32Value());
33863374
} else {
3387-
Local<Object> buffer = args[0]->ToObject();
33883375
initialized = diffieHellman->Init(
3389-
reinterpret_cast<unsigned char*>(Buffer::Data(buffer)),
3390-
Buffer::Length(buffer));
3376+
reinterpret_cast<unsigned char*>(Buffer::Data(args[0])),
3377+
Buffer::Length(args[0]));
33913378
}
33923379
}
33933380

@@ -3551,10 +3538,9 @@ class DiffieHellman : public ObjectWrap {
35513538
String::New("First argument must be other party's public key")));
35523539
} else {
35533540
ASSERT_IS_BUFFER(args[0]);
3554-
Local<Object> buffer = args[0]->ToObject();
35553541
key = BN_bin2bn(
3556-
reinterpret_cast<unsigned char*>(Buffer::Data(buffer)),
3557-
Buffer::Length(buffer), 0);
3542+
reinterpret_cast<unsigned char*>(Buffer::Data(args[0])),
3543+
Buffer::Length(args[0]), 0);
35583544
}
35593545

35603546
int dataSize = DH_size(diffieHellman->dh);
@@ -3623,11 +3609,10 @@ class DiffieHellman : public ObjectWrap {
36233609
String::New("First argument must be public key")));
36243610
} else {
36253611
ASSERT_IS_BUFFER(args[0]);
3626-
Local<Object> buffer = args[0]->ToObject();
36273612
diffieHellman->dh->pub_key =
36283613
BN_bin2bn(
3629-
reinterpret_cast<unsigned char*>(Buffer::Data(buffer)),
3630-
Buffer::Length(buffer), 0);
3614+
reinterpret_cast<unsigned char*>(Buffer::Data(args[0])),
3615+
Buffer::Length(args[0]), 0);
36313616
}
36323617

36333618
return args.This();
@@ -3649,11 +3634,10 @@ class DiffieHellman : public ObjectWrap {
36493634
String::New("First argument must be private key")));
36503635
} else {
36513636
ASSERT_IS_BUFFER(args[0]);
3652-
Local<Object> buffer = args[0]->ToObject();
36533637
diffieHellman->dh->priv_key =
36543638
BN_bin2bn(
3655-
reinterpret_cast<unsigned char*>(Buffer::Data(buffer)),
3656-
Buffer::Length(buffer), 0);
3639+
reinterpret_cast<unsigned char*>(Buffer::Data(args[0])),
3640+
Buffer::Length(args[0]), 0);
36573641
}
36583642

36593643
return args.This();
@@ -3769,7 +3753,7 @@ Handle<Value> PBKDF2(const Arguments& args) {
37693753
}
37703754

37713755
ASSERT_IS_BUFFER(args[0]);
3772-
passlen = Buffer::Length(args[0]->ToObject());
3756+
passlen = Buffer::Length(args[0]);
37733757
if (passlen < 0) {
37743758
type_error = "Bad password";
37753759
goto err;
@@ -3780,7 +3764,7 @@ Handle<Value> PBKDF2(const Arguments& args) {
37803764
assert(pass_written == passlen);
37813765

37823766
ASSERT_IS_BUFFER(args[1]);
3783-
saltlen = Buffer::Length(args[1]->ToObject());
3767+
saltlen = Buffer::Length(args[1]);
37843768
if (saltlen < 0) {
37853769
type_error = "Bad salt";
37863770
goto err;

0 commit comments

Comments
 (0)