From: Sam S. <sd...@gn...> - 2008-05-11 17:54:25
|
> * Reini Urban <eh...@k-...> [2008-05-11 11:39:19 +0200]: > > > Form: (SQL:with-sql-connection (CONN :NAME "template1" :LOG > *STANDARD-OUTPUT*) (SQL:PQtrace CONN *TRACE*) (SQL:sql-transaction > CONN "BEGIN" SQL:PGRES_COMMAND_OK) (SQL:sql-transaction CONN "DECLARE > mycursor CURSOR FOR select * from pg_database" SQL:PGRES_COMMAND_OK) > (SQL:with-sql-transaction (RES CONN "FETCH ALL in mycursor" > SQL:PGRES_TUPLES_OK) (LET* ((NFIELDS (SQL:PQnfields RES)) (NTUPLES > (SQL:PQntuples RES)) (NAMES (MAKE-ARRAY NFIELDS))) (FORMAT T " + ~D > field~:P; ~D ntuple~:P~%" NFIELDS NTUPLES) (DOTIMES (II NFIELDS) > (FORMAT T "~3:D: ~S~%" II (SETF (AREF NAMES II) (SQL:PQfname RES > II)))) (DOTIMES (II NTUPLES) (FORMAT T "~%<<~D>>~%" II) (DOTIMES (JJ > NFIELDS (TERPRI)) (FORMAT T "~3:D ~15@S = ~S~%" JJ (AREF NAMES JJ) > (SQL:PQgetvalue RES II JJ)))))) (SQL:sql-transaction CONN "CLOSE > mycursor" SQL:PGRES_COMMAND_OK) (SQL:sql-transaction CONN "COMMIT" > SQL:PGRES_COMMAND_OK) (SQL:PQuntrace CONN) NIL) > CORRECT: NIL > CLISP : ERROR > FFI::FOREIGN-CALL-OUT: #<FOREIGN-POINTER #x00AB4DEC> cannot be > converted to the foreign type FFI:C-POINTER please try the appended patch -- Sam Steingold (http://sds.podval.org/) on Fedora release 8 (Werewolf) http://camera.org http://pmw.org.il http://iris.org.il http://dhimmi.com http://thereligionofpeace.com http://truepeace.org http://memri.org (let ((a "(let ((a %c%s%c)) (format a 34 a 34))")) (format a 34 a 34)) --- foreign.d 03 May 2008 19:24:13 -0400 1.183 +++ foreign.d 11 May 2008 13:52:47 -0400 @@ -1924,7 +1924,9 @@ global maygc void convert_to_foreign (ob if (fvariablep(obj)) obj = TheFvariable(obj)->fv_address; else if (nullp(obj)) { *(void**)data = NULL; return; } - else if (!faddressp(obj)) goto bad_obj; + else if (fpointerp(obj)) { + validate_fpointer(obj); *(void**)data = Fpointer_value(obj); return; + } else if (!faddressp(obj)) goto bad_obj; obj = check_faddress_valid(obj); *(void**)data = Faddress_value(obj); return; |