[pypy-svn] r69575 - pypy/trunk/pypy/module/oracle
afa at codespeak.net
afa at codespeak.net
Tue Nov 24 13:13:42 CET 2009
Author: afa
Date: Tue Nov 24 13:13:41 2009
New Revision: 69575
Modified:
pypy/trunk/pypy/module/oracle/interp_cursor.py
pypy/trunk/pypy/module/oracle/interp_error.py
pypy/trunk/pypy/module/oracle/interp_variable.py
Log:
More translation fixes.
Modified: pypy/trunk/pypy/module/oracle/interp_cursor.py
==============================================================================
--- pypy/trunk/pypy/module/oracle/interp_cursor.py (original)
+++ pypy/trunk/pypy/module/oracle/interp_cursor.py Tue Nov 24 13:13:41 2009
@@ -484,7 +484,7 @@
self.environment.checkForError(
status,
"Cursor_ItemDescription(): scale")
- scale = attrptr[0]
+ scale = rffi.cast(lltype.Signed, attrptr[0])
finally:
lltype.free(attrptr, flavor='raw')
@@ -500,7 +500,7 @@
self.environment.checkForError(
status,
"Cursor_ItemDescription(): precision")
- precision = attrptr[0]
+ precision = rffi.cast(lltype.Signed, attrptr[0])
finally:
lltype.free(attrptr, flavor='raw')
else:
Modified: pypy/trunk/pypy/module/oracle/interp_error.py
==============================================================================
--- pypy/trunk/pypy/module/oracle/interp_error.py (original)
+++ pypy/trunk/pypy/module/oracle/interp_error.py Tue Nov 24 13:13:41 2009
@@ -6,7 +6,8 @@
from pypy.interpreter.error import OperationError
from pypy.module.oracle import roci, config
-class State:
+class State:
+ # XXX move to another file
def __init__(self, space):
w_module = space.getbuiltinmodule('cx_Oracle')
def get(name):
@@ -30,6 +31,11 @@
self.w_DateTimeType = space.getattr(w_datetime, space.wrap("datetime"))
self.w_DateType = space.getattr(w_datetime, space.wrap("date"))
+ from pypy.module.oracle.interp_variable import all_variable_types
+ self.variableTypeByPythonType = {}
+ for varType in all_variable_types:
+ w_type = space.gettypeobject(varType.typedef)
+ self.variableTypeByPythonType[w_type] = varType
def get(space):
return space.fromcache(State)
Modified: pypy/trunk/pypy/module/oracle/interp_variable.py
==============================================================================
--- pypy/trunk/pypy/module/oracle/interp_variable.py (original)
+++ pypy/trunk/pypy/module/oracle/interp_variable.py Tue Nov 24 13:13:41 2009
@@ -858,7 +858,7 @@
class VT_Object(W_Variable):
canBeInArray = False
-variableTypeByTypedef = {}
+all_variable_types = []
for name, cls in globals().items():
if not name.startswith('VT_') or not isinstance(cls, type):
continue
@@ -869,7 +869,7 @@
cls.typedef = TypeDef(
cls.__name__, W_Variable.typedef,
)
- variableTypeByTypedef[cls.typedef] = cls
+ all_variable_types.append(cls)
register_variable_class(cls)
def typeByOracleDescriptor(param, environment):
@@ -964,8 +964,8 @@
space.w_TypeError,
space.wrap("Variable_TypeByPythonType(): type expected"))
assert isinstance(w_type, W_TypeObject)
- if w_type.instancetypedef in variableTypeByTypedef:
- return variableTypeByTypedef[w_type.instancetypedef]
+ if w_type in get(space).variableTypeByPythonType:
+ return get(space).variableTypeByPythonType[w_type]
if space.is_w(w_type, space.w_int):
return VT_Integer
raise OperationError(
More information about the Pypy-commit
mailing list