Skip to content

Commit ac454a3

Browse files
authored
fix: libwaku's redundant allocs (#3380)
1 parent f7b4244 commit ac454a3

File tree

1 file changed

+13
-64
lines changed

1 file changed

+13
-64
lines changed

library/libwaku.nim

Lines changed: 13 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -225,19 +225,11 @@ proc waku_content_topic(
225225
initializeLibrary()
226226
checkLibwakuParams(ctx, callback, userData)
227227

228-
let appStr = appName.alloc()
229-
let ctnStr = contentTopicName.alloc()
230-
let encodingStr = encoding.alloc()
231-
232-
let contentTopic = fmt"/{$appStr}/{appVersion}/{$ctnStr}/{$encodingStr}"
228+
let contentTopic = fmt"/{$appName}/{$appVersion}/{$contentTopicName}/{$encoding}"
233229
callback(
234230
RET_OK, unsafeAddr contentTopic[0], cast[csize_t](len(contentTopic)), userData
235231
)
236232

237-
deallocShared(appStr)
238-
deallocShared(ctnStr)
239-
deallocShared(encodingStr)
240-
241233
return RET_OK
242234

243235
proc waku_pubsub_topic(
@@ -248,15 +240,11 @@ proc waku_pubsub_topic(
248240
initializeLibrary()
249241
checkLibwakuParams(ctx, callback, userData)
250242

251-
let topicNameStr = topicName.alloc()
252-
253-
let outPubsubTopic = fmt"/waku/2/{$topicNameStr}"
243+
let outPubsubTopic = fmt"/waku/2/{$topicName}"
254244
callback(
255245
RET_OK, unsafeAddr outPubsubTopic[0], cast[csize_t](len(outPubsubTopic)), userData
256246
)
257247

258-
deallocShared(topicNameStr)
259-
260248
return RET_OK
261249

262250
proc waku_default_pubsub_topic(
@@ -289,12 +277,9 @@ proc waku_relay_publish(
289277
initializeLibrary()
290278
checkLibwakuParams(ctx, callback, userData)
291279

292-
let jwm = jsonWakuMessage.alloc()
293-
defer:
294-
deallocShared(jwm)
295280
var jsonMessage: JsonMessage
296281
try:
297-
let jsonContent = parseJson($jwm)
282+
let jsonContent = parseJson($jsonWakuMessage)
298283
jsonMessage = JsonMessage.fromJsonNode(jsonContent).valueOr:
299284
raise newException(JsonParsingError, $error)
300285
except JsonParsingError:
@@ -307,14 +292,10 @@ proc waku_relay_publish(
307292
callback(RET_ERR, unsafeAddr msg[0], cast[csize_t](len(msg)), userData)
308293
return RET_ERR
309294

310-
let pst = pubSubTopic.alloc()
311-
defer:
312-
deallocShared(pst)
313-
314295
handleRequest(
315296
ctx,
316297
RequestType.RELAY,
317-
RelayRequest.createShared(RelayMsgType.PUBLISH, pst, nil, wakuMessage),
298+
RelayRequest.createShared(RelayMsgType.PUBLISH, pubSubTopic, nil, wakuMessage),
318299
callback,
319300
userData,
320301
)
@@ -354,15 +335,12 @@ proc waku_relay_subscribe(
354335
initializeLibrary()
355336
checkLibwakuParams(ctx, callback, userData)
356337

357-
let pst = pubSubTopic.alloc()
358-
defer:
359-
deallocShared(pst)
360338
var cb = onReceivedMessage(ctx)
361339

362340
handleRequest(
363341
ctx,
364342
RequestType.RELAY,
365-
RelayRequest.createShared(RelayMsgType.SUBSCRIBE, pst, WakuRelayHandler(cb)),
343+
RelayRequest.createShared(RelayMsgType.SUBSCRIBE, pubSubTopic, WakuRelayHandler(cb)),
366344
callback,
367345
userData,
368346
)
@@ -377,9 +355,6 @@ proc waku_relay_add_protected_shard(
377355
): cint {.dynlib, exportc, cdecl.} =
378356
initializeLibrary()
379357
checkLibwakuParams(ctx, callback, userData)
380-
let pubk = publicKey.alloc()
381-
defer:
382-
deallocShared(pubk)
383358

384359
handleRequest(
385360
ctx,
@@ -388,7 +363,7 @@ proc waku_relay_add_protected_shard(
388363
RelayMsgType.ADD_PROTECTED_SHARD,
389364
clusterId = clusterId,
390365
shardId = shardId,
391-
publicKey = pubk,
366+
publicKey = publicKey,
392367
),
393368
callback,
394369
userData,
@@ -403,15 +378,11 @@ proc waku_relay_unsubscribe(
403378
initializeLibrary()
404379
checkLibwakuParams(ctx, callback, userData)
405380

406-
let pst = pubSubTopic.alloc()
407-
defer:
408-
deallocShared(pst)
409-
410381
handleRequest(
411382
ctx,
412383
RequestType.RELAY,
413384
RelayRequest.createShared(
414-
RelayMsgType.UNSUBSCRIBE, pst, WakuRelayHandler(onReceivedMessage(ctx))
385+
RelayMsgType.UNSUBSCRIBE, pubSubTopic, WakuRelayHandler(onReceivedMessage(ctx))
415386
),
416387
callback,
417388
userData,
@@ -426,14 +397,10 @@ proc waku_relay_get_num_connected_peers(
426397
initializeLibrary()
427398
checkLibwakuParams(ctx, callback, userData)
428399

429-
let pst = pubSubTopic.alloc()
430-
defer:
431-
deallocShared(pst)
432-
433400
handleRequest(
434401
ctx,
435402
RequestType.RELAY,
436-
RelayRequest.createShared(RelayMsgType.NUM_CONNECTED_PEERS, pst),
403+
RelayRequest.createShared(RelayMsgType.NUM_CONNECTED_PEERS, pubSubTopic),
437404
callback,
438405
userData,
439406
)
@@ -447,14 +414,10 @@ proc waku_relay_get_connected_peers(
447414
initializeLibrary()
448415
checkLibwakuParams(ctx, callback, userData)
449416

450-
let pst = pubSubTopic.alloc()
451-
defer:
452-
deallocShared(pst)
453-
454417
handleRequest(
455418
ctx,
456419
RequestType.RELAY,
457-
RelayRequest.createShared(RelayMsgType.LIST_CONNECTED_PEERS, pst),
420+
RelayRequest.createShared(RelayMsgType.LIST_CONNECTED_PEERS, pubSubTopic),
458421
callback,
459422
userData,
460423
)
@@ -468,14 +431,10 @@ proc waku_relay_get_num_peers_in_mesh(
468431
initializeLibrary()
469432
checkLibwakuParams(ctx, callback, userData)
470433

471-
let pst = pubSubTopic.alloc()
472-
defer:
473-
deallocShared(pst)
474-
475434
handleRequest(
476435
ctx,
477436
RequestType.RELAY,
478-
RelayRequest.createShared(RelayMsgType.NUM_MESH_PEERS, pst),
437+
RelayRequest.createShared(RelayMsgType.NUM_MESH_PEERS, pubSubTopic),
479438
callback,
480439
userData,
481440
)
@@ -489,14 +448,10 @@ proc waku_relay_get_peers_in_mesh(
489448
initializeLibrary()
490449
checkLibwakuParams(ctx, callback, userData)
491450

492-
let pst = pubSubTopic.alloc()
493-
defer:
494-
deallocShared(pst)
495-
496451
handleRequest(
497452
ctx,
498453
RequestType.RELAY,
499-
RelayRequest.createShared(RelayMsgType.LIST_MESH_PEERS, pst),
454+
RelayRequest.createShared(RelayMsgType.LIST_MESH_PEERS, pubSubTopic),
500455
callback,
501456
userData,
502457
)
@@ -566,15 +521,9 @@ proc waku_lightpush_publish(
566521
initializeLibrary()
567522
checkLibwakuParams(ctx, callback, userData)
568523

569-
let jwm = jsonWakuMessage.alloc()
570-
let pst = pubSubTopic.alloc()
571-
defer:
572-
deallocShared(jwm)
573-
deallocShared(pst)
574-
575524
var jsonMessage: JsonMessage
576525
try:
577-
let jsonContent = parseJson($jwm)
526+
let jsonContent = parseJson($jsonWakuMessage)
578527
jsonMessage = JsonMessage.fromJsonNode(jsonContent).valueOr:
579528
raise newException(JsonParsingError, $error)
580529
except JsonParsingError:
@@ -590,7 +539,7 @@ proc waku_lightpush_publish(
590539
handleRequest(
591540
ctx,
592541
RequestType.LIGHTPUSH,
593-
LightpushRequest.createShared(LightpushMsgType.PUBLISH, pst, wakuMessage),
542+
LightpushRequest.createShared(LightpushMsgType.PUBLISH, pubSubTopic, wakuMessage),
594543
callback,
595544
userData,
596545
)

0 commit comments

Comments
 (0)