Skip to content

Commit 09650bc

Browse files
committed
src: convert more Maybe<bool> to Maybe<void>
1 parent 4ea0c7d commit 09650bc

2 files changed

Lines changed: 22 additions & 16 deletions

File tree

src/crypto/crypto_keygen.cc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ using v8::Just;
1818
using v8::JustVoid;
1919
using v8::Local;
2020
using v8::Maybe;
21+
using v8::MaybeLocal;
2122
using v8::Object;
2223
using v8::Uint32;
2324
using v8::Value;
@@ -79,12 +80,15 @@ KeyGenJobStatus SecretKeyGenTraits::DoKeyGen(Environment* env,
7980
return KeyGenJobStatus::OK;
8081
}
8182

82-
Maybe<bool> SecretKeyGenTraits::EncodeKey(Environment* env,
83-
SecretKeyGenConfig* params,
84-
Local<Value>* result) {
83+
MaybeLocal<Value> SecretKeyGenTraits::EncodeKey(Environment* env,
84+
SecretKeyGenConfig* params) {
8585
std::shared_ptr<KeyObjectData> data =
8686
KeyObjectData::CreateSecret(std::move(params->out));
87-
return Just(KeyObjectHandle::Create(env, data).ToLocal(result));
87+
Local<Value> ret;
88+
if (!KeyObjectHandle::Create(env, data).ToLocal(&ret)) {
89+
return MaybeLocal<Value>();
90+
}
91+
return ret;
8892
}
8993

9094
namespace Keygen {

src/crypto/crypto_keygen.h

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -99,11 +99,16 @@ class KeyGenJob final : public CryptoJob<KeyGenTraits> {
9999
AdditionalParams* params = CryptoJob<KeyGenTraits>::params();
100100

101101
if (status_ == KeyGenJobStatus::OK) {
102-
v8::Maybe<bool> ret = KeyGenTraits::EncodeKey(env, params, result);
103-
if (ret.IsJust() && ret.FromJust()) {
102+
v8::TryCatch try_catch(env->isolate());
103+
if (KeyGenTraits::EncodeKey(env, params).ToLocal(result)) {
104104
*err = Undefined(env->isolate());
105+
} else {
106+
CHECK(try_catch.HasCaught());
107+
CHECK(try_catch.CanContinue());
108+
*result = Undefined(env->isolate());
109+
*err = try_catch.Exception();
105110
}
106-
return ret;
111+
return v8::Just(true);
107112
}
108113

109114
if (errors->Empty())
@@ -178,21 +183,19 @@ struct KeyPairGenTraits final {
178183
return KeyGenJobStatus::OK;
179184
}
180185

181-
static v8::Maybe<bool> EncodeKey(
186+
static v8::MaybeLocal<v8::Value> EncodeKey(
182187
Environment* env,
183-
AdditionalParameters* params,
184-
v8::Local<v8::Value>* result) {
188+
AdditionalParameters* params) {
185189
v8::Local<v8::Value> keys[2];
186190
if (params->key
187191
.ToEncodedPublicKey(env, params->public_key_encoding, &keys[0])
188192
.IsNothing() ||
189193
params->key
190194
.ToEncodedPrivateKey(env, params->private_key_encoding, &keys[1])
191195
.IsNothing()) {
192-
return v8::Nothing<bool>();
196+
return v8::MaybeLocal<v8::Value>();
193197
}
194-
*result = v8::Array::New(env->isolate(), keys, arraysize(keys));
195-
return v8::Just(true);
198+
return v8::Array::New(env->isolate(), keys, arraysize(keys));
196199
}
197200
};
198201

@@ -221,10 +224,9 @@ struct SecretKeyGenTraits final {
221224
Environment* env,
222225
SecretKeyGenConfig* params);
223226

224-
static v8::Maybe<bool> EncodeKey(
227+
static v8::MaybeLocal<v8::Value> EncodeKey(
225228
Environment* env,
226-
SecretKeyGenConfig* params,
227-
v8::Local<v8::Value>* result);
229+
SecretKeyGenConfig* params);
228230
};
229231

230232
template <typename AlgorithmParams>

0 commit comments

Comments
 (0)