Skip to content

Commit 09edf6d

Browse files
committed
revert signer StableRef changes
1 parent 2e4da9f commit 09edf6d

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

aws-crt-kotlin/native/src/aws/sdk/kotlin/crt/auth/signing/AwsSignerNative.kt

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public actual object AwsSigner {
3737
request.toNativeRequest().usePinned { nativeRequest ->
3838
// Pair of HTTP request and callback channel containing the signature
3939
val userData = nativeRequest to Channel<ByteArray>(1)
40+
val userDataStableRef = StableRef.create(userData)
4041

4142
val signable = checkNotNull(
4243
aws_signable_new_http_request(
@@ -47,20 +48,21 @@ public actual object AwsSigner {
4748

4849
val nativeSigningConfig: CPointer<aws_signing_config_base> = config.toNativeSigningConfig().reinterpret()
4950

50-
StableRef.create(userData).use { userDataStableRef ->
51-
awsAssertOpSuccess(
52-
aws_sign_request_aws(
53-
allocator = Allocator.Default.allocator,
54-
signable = signable,
55-
base_config = nativeSigningConfig,
56-
on_complete = staticCFunction(::signCallback),
57-
userdata = userDataStableRef.asCPointer(),
58-
),
59-
) { "sign() aws_sign_request_aws" }
51+
awsAssertOpSuccess(
52+
aws_sign_request_aws(
53+
allocator = Allocator.Default.allocator,
54+
signable = signable,
55+
base_config = nativeSigningConfig,
56+
on_complete = staticCFunction(::signCallback),
57+
userdata = userDataStableRef.asCPointer(),
58+
),
59+
) { "sign() aws_sign_request_aws" }
6060

61-
val callbackChannel = userDataStableRef.get().second
62-
val signature = callbackChannel.receive() // wait for async signing to complete....
63-
return AwsSigningResult(nativeRequest.get().toHttpRequest(), signature)
61+
val callbackChannel = userDataStableRef.get().second
62+
val signature = callbackChannel.receive() // wait for async signing to complete....
63+
return AwsSigningResult(nativeRequest.get().toHttpRequest(), signature).also {
64+
userDataStableRef.dispose()
65+
callbackChannel.close()
6466
}
6567
}
6668
}

0 commit comments

Comments
 (0)