mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 01:14:41 +00:00
fixes ORC memory leaks; marks hooks with optQuirky (#24701)
closes https://github.com/nim-lang/Nim/pull/24686
closes #24693
```nim
# v.nim
import std/[json]
var test: seq[string]
var testData: JsonNode
try:
## Fails
testData = parseJson("""[{"id": 1"}, {"id": "2"}]""")
## Works
# testdata = parseJson("""[{"id": "1"}, {"id": "2"}]""")
## Fails
# let stream = newStringStream("""[{"id": 1"}, {"id": "2"}]""")
# testData = parseJson(stream, "input", false, false)
# stream.close()
except:
testData = %* []
for t in testData:
test.add(t["id"].getStr())
echo $test
```
With this PR:
```
==66425== LEAK SUMMARY:
==66425== definitely lost: 0 bytes in 0 blocks
==66425== indirectly lost: 0 bytes in 0 blocks
==66425== possibly lost: 0 bytes in 0 blocks
==66425== still reachable: 16,512 bytes in 2 blocks
==66425== suppressed: 0 bytes in 0 blocks
==66425== Reachable blocks (those to which a pointer was found) are not shown.
==66425== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==66425==
==66425== For lists of detected and suppressed errors, rerun with: -s
==66425== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
```
(cherry picked from commit f0b5bf359e)
This commit is contained in:
@@ -1179,6 +1179,8 @@ proc produceSym(g: ModuleGraph; c: PContext; typ: PType; kind: TTypeAttachedOp;
|
||||
result.ast[pragmasPos].add newTree(nkExprColonExpr,
|
||||
newIdentNode(g.cache.getIdent("raises"), info), newNodeI(nkBracket, info))
|
||||
|
||||
if kind == attachedDestructor:
|
||||
incl result.options, optQuirky
|
||||
completePartialOp(g, idgen.module, typ, kind, result)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user