From 32bb390d4f368ae012b7c0f21f1e5e8c71a88daf Mon Sep 17 00:00:00 2001 From: Alexander Iljin Date: Sat, 29 Oct 2016 21:42:41 +0300 Subject: [PATCH] odbc: fix referencing and dereferencing the aliens --- unmaintained/odbc/odbc.factor | 42 +++++++++++++++++------------------ 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/unmaintained/odbc/odbc.factor b/unmaintained/odbc/odbc.factor index d7d11da727..3c18588a77 100644 --- a/unmaintained/odbc/odbc.factor +++ b/unmaintained/odbc/odbc.factor @@ -131,8 +131,8 @@ FUNCTION: SQLRETURN SQLDescribeCol ( SQLHSTMT statementHandle, SQLSMALLINT colum FUNCTION: SQLRETURN SQLGetData ( SQLHSTMT statementHandle, SQLUSMALLINT columnNumber, SQLSMALLINT targetType, SQLPOINTER targetValuePtr, SQLINTEGER bufferLength, SQLINTEGER* strlen_or_indPtr ) : alloc-handle ( type parent -- handle ) - f [ SQLAllocHandle ] keep swap succeeded? [ - *void* + f void* [ SQLAllocHandle ] keep swap succeeded? [ + void* deref ] [ drop f ] if ; @@ -158,7 +158,7 @@ FUNCTION: SQLRETURN SQLGetData ( SQLHSTMT statementHandle, SQLUSMALLINT columnNu : odbc-connect ( env dsn -- dbc ) >r alloc-dbc-handle dup r> - f swap dup length 1024 temp-string 0 SQL-DRIVER-NOPROMPT + f swap dup length 1024 temp-string 0 short SQL-DRIVER-NOPROMPT SQLDriverConnect succeeded? [ "odbc-connect failed" throw ] unless ; : odbc-disconnect ( dbc -- ) @@ -177,8 +177,8 @@ FUNCTION: SQLRETURN SQLGetData ( SQLHSTMT statementHandle, SQLUSMALLINT columnNu SQLFetch succeeded? ; : odbc-number-of-columns ( statement -- number ) - 0 [ SQLNumResultCols succeeded? ] keep swap [ - *short + 0 short [ SQLNumResultCols succeeded? ] keep swap [ + short deref ] [ drop f ] if ; @@ -191,16 +191,16 @@ C: column dup >r 1024 CHAR: space ascii string>alien dup >r 1024 - 0 - 0 dup >r - 0 dup >r - 0 dup >r - 0 dup >r + 0 short + 0 short dup >r + 0 uint dup >r + 0 short dup >r + 0 short dup >r SQLDescribeCol succeeded? [ - r> *short - r> *short - r> *uint - r> *short convert-sql-type + r> short deref + r> short deref + r> uint deref + r> short deref convert-sql-type r> ascii alien>string r> ] [ @@ -216,13 +216,13 @@ C: column { SQL-WCHAR [ ascii alien>string ] } { SQL-WCHARVAR [ ascii alien>string ] } { SQL-WLONGCHARVAR [ ascii alien>string ] } - { SQL-SMALLINT [ *short ] } - { SQL-INTEGER [ *long ] } - { SQL-REAL [ *float ] } - { SQL-FLOAT [ *double ] } - { SQL-DOUBLE [ *double ] } - { SQL-TINYINT [ *char ] } - { SQL-BIGINT [ *longlong ] } + { SQL-SMALLINT [ short deref ] } + { SQL-INTEGER [ long deref ] } + { SQL-REAL [ float deref ] } + { SQL-FLOAT [ double deref ] } + { SQL-DOUBLE [ double deref ] } + { SQL-TINYINT [ char deref ] } + { SQL-BIGINT [ longlong deref ] } [ nip [ "Unknown SQL Type: " % name>> % ] "" make ] } case ;