From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from qmta02.westchester.pa.mail.comcast.net (qmta02.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:24]) by hurricane.the-brannons.com (Postfix) with ESMTP id 0754177AD6 for ; Sat, 4 Jan 2014 23:30:59 -0800 (PST) Received: from omta07.westchester.pa.mail.comcast.net ([76.96.62.59]) by qmta02.westchester.pa.mail.comcast.net with comcast id A7W91n0011GhbT8517WoEL; Sun, 05 Jan 2014 07:30:48 +0000 Received: from eklhad ([107.5.36.150]) by omta07.westchester.pa.mail.comcast.net with comcast id A7Wo1n00C3EMmQj3T7WoyN; Sun, 05 Jan 2014 07:30:48 +0000 To: Edbrowse-dev@lists.the-brannons.com From: Karl Dahlke User-Agent: edbrowse/3.4.10 Date: Sun, 05 Jan 2014 02:30:44 -0500 Message-ID: <20140005023044.eklhad@comcast.net> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1388907048; bh=2FUpJmK88olKZdEoXnzLX5NqtwZ2vNCmPPvVxGXk8RE=; h=Received:Received:To:From:Reply-to:Subject:Date:Message-ID: Mime-Version:Content-Type; b=cZ9ZCEKlr2UagfwD0XmptEYWNuQoCbGKXagLyugNhWrRs21zmSG+G4n1KQ2QqHWFd v6P7XzG5ECKj8HF3HLTjjBgvFyJ4TC91LqqFRHEdhYW3xMB0ps21FvWGsCiPJ3+6Tj Afd/YXytjWsbQEp5pMOa/9KNYulBeLtdRf7yp2qySpi+W343lQVT+N/HdIsvyyhreh X04ndhnqN/9Jl6g6RSPePzfxt4M6ZkLL6igPRv1tc1jmuQD46FoNeLHN11ZxHakWr9 0rMqPWWkO1aRvOTB6LkhZ+jinA1sdPuRsNBcIhkYDqgBjwuM6EUDBGeggwRVKNyEev 2CsQxc/Tl7z+A== Subject: [Edbrowse-dev] gc X-BeenThere: edbrowse-dev@lists.the-brannons.com X-Mailman-Version: 2.1.17 Precedence: list Reply-To: Karl Dahlke List-Id: Edbrowse Development List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Jan 2014 07:31:00 -0000 > The problem for us is that we currently don't construct any of these > RootedObject instances, which means that the SpiderMonkey internal GC Really? My layer calls, for example, JS_ConstructObjectWithArguments() to make a new object, I would suppose you replace that with some kind of js new call, which implicitly or explicitly creates a new object in c++, which calls the constructor you described, and I would figure that's good enough to keep it around, until we remove it, which use to be some kind of js_free, now some kind of js_destroy, and then the gc can clean up the loose ends, and I'm sorry in advance if I'm oversimplifying it, because I haven't looked at any of your code or how it works; I just didn't expect a problem here. Allocate becomes new construct, and all should be well. Karl Dahlke