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) ```
This commit is contained in:
@@ -1207,6 +1207,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