[pypy-svn] r20565 - pypy/dist/pypy/translator/js
ericvrp at codespeak.net
ericvrp at codespeak.net
Fri Dec 2 11:14:42 CET 2005
Author: ericvrp
Date: Fri Dec 2 11:14:41 2005
New Revision: 20565
Modified:
pypy/dist/pypy/translator/js/js.py
pypy/dist/pypy/translator/js/opwriter.py
Log:
Fixes from genjs. There is one fix I don't know how to do.
Can someone please have a quick look?
Modified: pypy/dist/pypy/translator/js/js.py
==============================================================================
--- pypy/dist/pypy/translator/js/js.py (original)
+++ pypy/dist/pypy/translator/js/js.py Fri Dec 2 11:14:41 2005
@@ -10,7 +10,8 @@
import py
import os
-from pypy.rpython.rmodel import inputconst, getfunctionptr
+from pypy.rpython.rmodel import inputconst
+from pypy.rpython.typesystem import getfunctionptr
from pypy.rpython.lltypesystem import lltype
from pypy.tool.udir import udir
from pypy.translator.js.node import Node
@@ -34,15 +35,20 @@
def write_source(self):
func = self.entrypoint
- ptr = getfunctionptr(self.db.translator, func)
+ bk = self.db.translator.annotator.bookkeeper
+ ptr = getfunctionptr(bk.getdesc(func).cachedgraph(None))
c = inputconst(lltype.typeOf(ptr), ptr)
self.db.prepare_arg_value(c)
#add exception matching function (XXX should only be done when needed)
- e = self.db.translator.rtyper.getexceptiondata()
- matchptr = getfunctionptr(self.db.translator, e.ll_exception_match)
- matchconst = inputconst(lltype.typeOf(matchptr), matchptr)
- self.db.prepare_arg_value(matchconst)
+ try:
+ e = self.db.translator.rtyper.getexceptiondata()
+ #matchptr = getfunctionptr(bk.getdesc(e.fn_exception_match).cachedgraph(None))
+ matchptr = getfunctionptr(bk.getdesc(e.fn_exception_match._obj).cachedgraph(None))
+ matchconst = inputconst(lltype.typeOf(matchptr), matchptr)
+ self.db.prepare_arg_value(matchconst)
+ except:
+ pass #XXX need a fix here
# set up all nodes
self.db.setup_all()
Modified: pypy/dist/pypy/translator/js/opwriter.py
==============================================================================
--- pypy/dist/pypy/translator/js/opwriter.py (original)
+++ pypy/dist/pypy/translator/js/opwriter.py Fri Dec 2 11:14:41 2005
@@ -1,7 +1,6 @@
import py
from pypy.objspace.flow.model import Constant
from pypy.rpython.lltypesystem import lltype
-from pypy.rpython.rmodel import inputconst, getfunctionptr
from pypy.translator.js.log import log
log = log.opwriter
@@ -278,7 +277,7 @@
exceptions = []
for exit in self.block.exits[1:]:
assert issubclass(exit.exitcase, Exception)
- exception_match = self.db.translator.rtyper.getexceptiondata().ll_exception_match.__name__
+ exception_match = self.db.translator.rtyper.getexceptiondata().fn_exception_match._obj._name
exception_ref = self.db.obj2node[exit.llexitcase._obj].ref #get _ref()
exception_target = self.node.blockindex[exit.target]
exception = (exception_match, exception_ref, exception_target, exit)
More information about the Pypy-commit
mailing list