Ticket #149: SQLite3.pir.patch
| File SQLite3.pir.patch, 2.0 KB (added by donaldh, 4 years ago) |
|---|
-
ext/SQLite3/SQLite3.pir
33 33 .const int SQLITE_DONE = 101 # sqlite3_step() has finished executing 34 34 35 35 .sub '_sqlite_init' :load 36 .local pmc libname 37 .local pmc function 38 .local pmc sqlite_funcs 36 .local pmc lib 37 38 .local pmc lib_names 39 lib_names = new 'ResizableStringArray' 40 push lib_names, 'libsqlite3' 41 push lib_names, 'cygsqlite3-0' 39 42 40 libname = loadlib 'libsqlite3' 41 set_global '_sqlite3', libname 43 .local pmc lib_iter 44 lib_iter = iter lib_names 45 .local string libname 46 lib_loop: 47 unless lib_iter goto lib_fail 48 libname = shift lib_iter 49 lib = loadlib libname 50 if lib goto lib_done 51 goto lib_loop 42 52 53 lib_fail: 54 .local pmc exception 55 exception = new 'Exception' 56 .local pmc message 57 message = new 'String' 58 message = 'Failed to load sqlite3 library.' 59 setattribute exception, 'message', message 60 throw exception 61 62 lib_done: 63 set_global '_sqlite3', lib 64 65 .local pmc sqlite_funcs 43 66 sqlite_funcs = new 'ResizableStringArray' 44 67 push sqlite_funcs, 'step' 45 68 push sqlite_funcs, 'ip' … … 62 85 push sqlite_funcs, 'column_text' 63 86 push sqlite_funcs, 'tpi' 64 87 65 function = dlfunc libname, 'sqlite3_open', 'itV' 88 .local pmc function 89 function = dlfunc lib, 'sqlite3_open', 'itV' 66 90 set_global 'open_raw', function 67 91 68 function = dlfunc lib name, 'sqlite3_prepare_v2', 'iptiVp'92 function = dlfunc lib, 'sqlite3_prepare_v2', 'iptiVp' 69 93 set_global 'prepare_raw', function 70 94 71 95 .local pmc list_iter … … 78 102 func_name = shift list_iter 79 103 signature = shift list_iter 80 104 $S0 = concat 'sqlite3_', func_name 81 function = dlfunc lib name, $S0, signature105 function = dlfunc lib, $S0, signature 82 106 set_global func_name, function 83 107 goto list_loop 84 108
