about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-10-25 12:35:11 +0200
committerbptato <nincsnevem662@gmail.com>2023-10-25 12:48:30 +0200
commit3f0a183d48a44cbbe642842fb60b69cca9e83390 (patch)
tree0aad7dfeaa3a9265e030b2ed2739de4e042a69a2
parentb6e5390ec286747ce6789f9cfec54dec8dc18fa3 (diff)
downloadchawan-3f0a183d48a44cbbe642842fb60b69cca9e83390.tar.gz
reduce new() usage
-rw-r--r--src/config/config.nim4
-rw-r--r--src/css/sheet.nim9
-rw-r--r--src/html/chadombuilder.nim2
-rw-r--r--src/html/dom.nim75
-rw-r--r--src/io/serialize.nim2
-rw-r--r--src/io/socketstream.nim15
-rw-r--r--src/js/javascript.nim2
-rw-r--r--src/js/typeptr.nim3
-rw-r--r--src/layout/engine.nim61
-rw-r--r--src/loader/request.nim20
-rw-r--r--src/types/cookie.nim7
-rw-r--r--src/types/url.nim4
12 files changed, 102 insertions, 102 deletions
diff --git a/src/config/config.nim b/src/config/config.nim
index 63438c55..3d2769d4 100644
--- a/src/config/config.nim
+++ b/src/config/config.nim
@@ -619,7 +619,7 @@ proc parseConfig*(config: Config, dir: string, s: string, name = "<input>",
   config.parseConfig(dir, newStringStream(s), name, laxnames)
 
 proc staticReadConfig(): ConfigObj =
-  var config = new(Config)
+  var config = Config()
   config.parseConfig("res", staticRead"res/config.toml", "config.toml")
   return config[]
 
@@ -637,7 +637,7 @@ proc getLinedAction*(config: Config, s: string): string =
   return config.line.getOrDefault(s)
 
 proc readConfig*(): Config =
-  new(result)
+  result = Config()
   result[] = defaultConfig
   when defined(debug):
     result.readConfig(getCurrentDir() / "res")
diff --git a/src/css/sheet.nim b/src/css/sheet.nim
index 1f68816a..d3cd011f 100644
--- a/src/css/sheet.nim
+++ b/src/css/sheet.nim
@@ -34,11 +34,12 @@ type SelectorHashes = object
   class: string
 
 func newStylesheet*(cap: int): CSSStylesheet =
-  new(result)
   let bucketsize = cap div 2
-  result.id_table = initTable[string, seq[CSSRuleDef]](bucketsize)
-  result.class_table = initTable[string, seq[CSSRuleDef]](bucketsize)
-  result.general_list = newSeqOfCap[CSSRuleDef](bucketsize)
+  return CSSStylesheet(
+    id_table: initTable[string, seq[CSSRuleDef]](bucketsize),
+    class_table: initTable[string, seq[CSSRuleDef]](bucketsize),
+    general_list: newSeqOfCap[CSSRuleDef](bucketsize)
+  )
 
 proc getSelectorIds(hashes: var SelectorHashes, sel: Selector): bool
 
diff --git a/src/html/chadombuilder.nim b/src/html/chadombuilder.nim
index 129082e2..2580e608 100644
--- a/src/html/chadombuilder.nim
+++ b/src/html/chadombuilder.nim
@@ -249,7 +249,7 @@ proc parseHTML*(inputStream: Stream, window: Window, url: URL,
   return Document(builder.document)
 
 proc newDOMParser(): DOMParser {.jsctor.} =
-  new(result)
+  return DOMParser()
 
 proc parseFromString(ctx: JSContext, parser: DOMParser, str, t: string):
     JSResult[Document] {.jsfunc.} =
diff --git a/src/html/dom.nim b/src/html/dom.nim
index 30c01b37..a70a3ce1 100644
--- a/src/html/dom.nim
+++ b/src/html/dom.nim
@@ -2079,47 +2079,41 @@ func newHTMLElement*(document: Document, tagType: TagType,
     attrs = Table[string, string]()): HTMLElement =
   case tagType
   of TAG_INPUT:
-    result = new(HTMLInputElement)
+    result = HTMLInputElement()
   of TAG_A:
-    result = new(HTMLAnchorElement)
-    HTMLAnchorElement(result).relList = DOMTokenList(
-      element: result,
-      localName: "rel"
-    )
+    let anchor = HTMLAnchorElement()
+    anchor.relList = DOMTokenList(element: anchor, localName: "rel")
+    result = anchor
   of TAG_SELECT:
-    result = new(HTMLSelectElement)
+    result = HTMLSelectElement()
   of TAG_OPTGROUP:
-    result = new(HTMLOptGroupElement)
+    result = HTMLOptGroupElement()
   of TAG_OPTION:
-    result = new(HTMLOptionElement)
+    result = HTMLOptionElement()
   of TAG_H1, TAG_H2, TAG_H3, TAG_H4, TAG_H5, TAG_H6:
-    result = new(HTMLHeadingElement)
+    result = HTMLHeadingElement()
   of TAG_BR:
-    result = new(HTMLBRElement)
+    result = HTMLBRElement()
   of TAG_SPAN:
-    result = new(HTMLSpanElement)
+    result = HTMLSpanElement()
   of TAG_OL:
-    result = new(HTMLOListElement)
+    result = HTMLOListElement()
   of TAG_UL:
-    result = new(HTMLUListElement)
+    result = HTMLUListElement()
   of TAG_MENU:
-    result = new(HTMLMenuElement)
+    result = HTMLMenuElement()
   of TAG_LI:
-    result = new(HTMLLIElement)
+    result = HTMLLIElement()
   of TAG_STYLE:
-    result = new(HTMLStyleElement)
+    result = HTMLStyleElement()
   of TAG_LINK:
-    result = new(HTMLLinkElement)
-    HTMLLinkElement(result).relList = DOMTokenList(
-      element: result,
-      localName: "rel"
-    )
+    let link = HTMLLinkElement()
+    link.relList = DOMTokenList(element: link, localName: "rel")
+    result = link
   of TAG_FORM:
-    result = new(HTMLFormElement)
-    HTMLFormElement(result).relList = DOMTokenList(
-      element: result,
-      localName: "rel"
-    )
+    let form = HTMLFormElement()
+    form.relList = DOMTokenList(element: form, localName: "rel")
+    result = form
   of TAG_TEMPLATE:
     result = HTMLTemplateElement(
       content: DocumentFragment(
@@ -2128,30 +2122,27 @@ func newHTMLElement*(document: Document, tagType: TagType,
       )
     )
   of TAG_UNKNOWN:
-    result = new(HTMLUnknownElement)
+    result = HTMLUnknownElement()
   of TAG_SCRIPT:
-    result = new(HTMLScriptElement)
-    HTMLScriptElement(result).forceAsync = true
+    result = HTMLScriptElement(forceAsync: true)
   of TAG_BASE:
-    result = new(HTMLBaseElement)
+    result = HTMLBaseElement()
   of TAG_BUTTON:
-    result = new(HTMLButtonElement)
+    result = HTMLButtonElement()
   of TAG_TEXTAREA:
-    result = new(HTMLTextAreaElement)
+    result = HTMLTextAreaElement()
   of TAG_LABEL:
-    result = new(HTMLLabelElement)
+    result = HTMLLabelElement()
   of TAG_CANVAS:
-    result = new(HTMLCanvasElement)
+    result = HTMLCanvasElement()
   of TAG_IMG:
-    result = new(HTMLImageElement)
+    result = HTMLImageElement()
   of TAG_AREA:
-    result = new(HTMLAreaElement)
-    HTMLAreaElement(result).relList = DOMTokenList(
-      element: result,
-      localName: "rel"
-    )
+    let area = HTMLAreaElement()
+    area.relList = DOMTokenList(element: result, localName: "rel")
+    result = area
   else:
-    result = new(HTMLElement)
+    result = HTMLElement()
   result.nodeType = ELEMENT_NODE
   result.tagType = tagType
   result.namespace = namespace
diff --git a/src/io/serialize.nim b/src/io/serialize.nim
index 98f3a70a..1a7d0f62 100644
--- a/src/io/serialize.nim
+++ b/src/io/serialize.nim
@@ -309,7 +309,7 @@ proc sread*(stream: Stream, blob: var Blob) =
     stream.sread(file.path)
     blob = file
   else:
-    new(blob)
+    blob = Blob()
     stream.sread(blob.ctype)
     stream.sread(blob.size)
     let buffer = alloc(blob.size)
diff --git a/src/io/socketstream.nim b/src/io/socketstream.nim
index 2e56a4c7..29337a16 100644
--- a/src/io/socketstream.nim
+++ b/src/io/socketstream.nim
@@ -115,13 +115,14 @@ proc recvFileHandle*(s: SocketStream): FileHandle =
   dealloc(cmsgbuf)
 
 func newSocketStream*(): SocketStream =
-  new(result)
-  result.readDataImpl = cast[proc (s: Stream, buffer: pointer, bufLen: int): int
-      {.nimcall, raises: [Defect, IOError, OSError], tags: [ReadIOEffect], gcsafe.}
-  ](sockReadData) # ... ???
-  result.writeDataImpl = sockWriteData
-  result.atEndImpl = sockAtEnd
-  result.closeImpl = sockClose
+  return SocketStream(
+    readDataImpl: cast[proc (s: Stream, buffer: pointer, bufLen: int): int
+        {.nimcall, raises: [Defect, IOError, OSError], tags: [ReadIOEffect], gcsafe.}
+    ](sockReadData), # ... ???
+    writeDataImpl: sockWriteData,
+    atEndImpl: sockAtEnd,
+    closeImpl: sockClose
+  )
 
 proc setBlocking*(ss: SocketStream, blocking: bool) =
   ss.source.getFd().setBlocking(blocking)
diff --git a/src/js/javascript.nim b/src/js/javascript.nim
index e682098a..12c504a2 100644
--- a/src/js/javascript.nim
+++ b/src/js/javascript.nim
@@ -108,7 +108,7 @@ var runtimes {.threadVar.}: seq[JSRuntime]
 
 proc newJSRuntime*(): JSRuntime =
   let rt = JS_NewRuntime()
-  let opaque = new(JSRuntimeOpaque)
+  let opaque = JSRuntimeOpaque()
   GC_ref(opaque)
   JS_SetRuntimeOpaque(rt, cast[pointer](opaque))
   # Must be added after opaque is set, or there is a chance of
diff --git a/src/js/typeptr.nim b/src/js/typeptr.nim
index 0d5c4deb..55fd89c7 100644
--- a/src/js/typeptr.nim
+++ b/src/js/typeptr.nim
@@ -10,8 +10,7 @@ proc getTypePtr*[T](x: T): pointer =
     return getTypeInfo(x)
 
 func getTypePtr*(t: typedesc[ref object]): pointer =
-  var x: t
-  new(x)
+  var x = t()
   return getTypePtr(x)
 
 func getTypePtr*(t: type): pointer =
diff --git a/src/layout/engine.nim b/src/layout/engine.nim
index dce80eb4..6a6d9943 100644
--- a/src/layout/engine.nim
+++ b/src/layout/engine.nim
@@ -1653,49 +1653,56 @@ proc buildRootBlock(viewport: Viewport, builder: BlockBoxBuilder): BlockBox =
 
 # Returns a block box, disregarding the computed value of display
 proc getBlockBox(computed: CSSComputedValues): BlockBoxBuilder =
-  new(result)
-  result.computed = computed
+  return BlockBoxBuilder(computed: computed)
 
 proc getTextBox(computed: CSSComputedValues): InlineBoxBuilder =
-  new(result)
-  result.inlinelayout = true
-  result.computed = computed
-
-proc getMarkerBox(computed: CSSComputedValues, listItemCounter: int): MarkerBoxBuilder =
-  new(result)
-  result.inlinelayout = true
-  result.computed = computed.inheritProperties()
-  result.computed{"display"} = DISPLAY_INLINE
+  return InlineBoxBuilder(inlinelayout: true, computed: computed)
+
+proc getMarkerBox(computed: CSSComputedValues, listItemCounter: int):
+    MarkerBoxBuilder =
+  let computed = computed.inheritProperties()
+  computed{"display"} = DISPLAY_INLINE
   # Use pre, so the space at the end of the default markers isn't ignored.
-  result.computed{"white-space"} = WHITESPACE_PRE
-  result.text.add(computed{"list-style-type"}.listMarker(listItemCounter))
+  computed{"white-space"} = WHITESPACE_PRE
+  return MarkerBoxBuilder(
+    inlinelayout: true,
+    computed: computed,
+    text: @[computed{"list-style-type"}.listMarker(listItemCounter)]
+  )
 
-proc getListItemBox(computed: CSSComputedValues, listItemCounter: int): ListItemBoxBuilder =
-  new(result)
-  result.computed = computed
-  result.marker = getMarkerBox(computed, listItemCounter)
+proc getListItemBox(computed: CSSComputedValues, listItemCounter: int):
+    ListItemBoxBuilder =
+  return ListItemBoxBuilder(
+    computed: computed,
+    marker: getMarkerBox(computed, listItemCounter)
+  )
 
 proc getTableBox(computed: CSSComputedValues): TableBoxBuilder =
-  new(result)
-  result.computed = computed
+  return TableBoxBuilder(
+    computed: computed
+  )
 
 # Also known as <tbody>.
 proc getTableRowGroupBox(computed: CSSComputedValues): TableRowGroupBoxBuilder =
-  new(result)
-  result.computed = computed
+  return TableRowGroupBoxBuilder(
+    computed: computed
+  )
 
 proc getTableRowBox(computed: CSSComputedValues): TableRowBoxBuilder =
-  new(result)
-  result.computed = computed
+  return TableRowBoxBuilder(
+    computed: computed
+  )
 
 # For <th> and <td>.
 proc getTableCellBox(computed: CSSComputedValues): TableCellBoxBuilder =
-  new(result)
-  result.computed = computed
+  return TableCellBoxBuilder(
+    computed: computed
+  )
 
 proc getTableCaptionBox(computed: CSSComputedValues): TableCaptionBoxBuilder =
-  new(result)
-  result.computed = computed
+  return TableCaptionBoxBuilder(
+    computed: computed
+  )
 
 type BlockGroup = object
   parent: BoxBuilder
diff --git a/src/loader/request.nim b/src/loader/request.nim
index 7596a0a2..78d38723 100644
--- a/src/loader/request.nim
+++ b/src/loader/request.nim
@@ -145,17 +145,17 @@ proc rsClose(s: Stream) = {.cast(tags: [WriteIOEffect]).}: #TODO TODO TODO ew.
     s.isource.setPosition(s.isource.getPosition() + len)
 
 proc newReadableStream*(isource: Stream): ReadableStream =
-  new(result)
-  result.isource = isource
-  result.readDataImpl = rsReadData
-  result.atEndImpl = rsAtEnd
-  result.closeImpl = rsClose
   var len: int
-  result.isource.read(len)
-  if len == 0:
-    result.isend = true
-  else:
-    result.isource.readStr(len, result.buf)
+  isource.read(len)
+  result = ReadableStream(
+    isource: isource,
+    readDataImpl: rsReadData,
+    atEndImpl: rsAtEnd,
+    closeImpl: rsClose,
+    isend: len == 0
+  )
+  if len != 0:
+    isource.readStr(len, result.buf)
 
 func newRequest*(url: URL, httpmethod = HTTP_GET, headers = newHeaders(),
     body = opt(string), multipart = opt(FormData), mode = RequestMode.NO_CORS,
diff --git a/src/types/cookie.nim b/src/types/cookie.nim
index 627975ab..872e97dd 100644
--- a/src/types/cookie.nim
+++ b/src/types/cookie.nim
@@ -207,9 +207,10 @@ proc serialize*(cookiejar: CookieJar, url: URL): string =
 
 proc newCookie*(str: string, url: URL = nil): JSResult[Cookie]
     {.jsctor.} =
-  let cookie = new(Cookie)
-  cookie.expires = -1
-  cookie.created = now().toTime().toUnix()
+  let cookie = Cookie(
+    expires: -1,
+    created: now().toTime().toUnix()
+  )
   var first = true
   var haspath = false
   var hasdomain = false
diff --git a/src/types/url.nim b/src/types/url.nim
index 1ded3d36..69a3a78e 100644
--- a/src/types/url.nim
+++ b/src/types/url.nim
@@ -849,7 +849,7 @@ proc cloneInto(a, b: URL) =
     b.searchParams.url = some(b)
 
 proc newURL*(url: URL): URL =
-  new(result)
+  result = URL()
   url.cloneInto(result)
 
 proc setHref(url: URL, s: string): Err[JSError] {.jsfset: "href".} =
@@ -905,7 +905,7 @@ proc newURLSearchParams[
       Table[string, string]|
       string
     ](init: T = ""): URLSearchParams {.jsctor.} =
-  new(result)
+  result = URLSearchParams()
   when T is seq[(string, string)]:
     result.list = init
   elif T is Table[string, string]: