From 1c19a572bff83db625eaa176c8f81ccbf3f23183 Mon Sep 17 00:00:00 2001 From: dave Date: Sun, 11 Jun 2006 18:08:50 +0000 Subject: [PATCH] Fixed query problems on 64-bit git-svn-id: http://svn.drobilla.net/lad@23 a436a847-0d15-0410-975c-d299462d15a1 --- libslv2/examples/hosts/.jack_host.c.swp | Bin 28672 -> 0 bytes libslv2/examples/plugins/Amp-swh.lv2/Makefile | 2 +- libslv2/examples/plugins/Amp-swh.lv2/amp.so | Bin 2629 -> 0 bytes libslv2/src/plugin.c | 8 ++-- libslv2/src/pluginlist.c | 15 +++++--- libslv2/src/port.c | 4 +- libslv2/src/query.c | 17 +++++---- libslv2/src/util.c | 35 ++++-------------- 8 files changed, 33 insertions(+), 48 deletions(-) delete mode 100644 libslv2/examples/hosts/.jack_host.c.swp delete mode 100755 libslv2/examples/plugins/Amp-swh.lv2/amp.so diff --git a/libslv2/examples/hosts/.jack_host.c.swp b/libslv2/examples/hosts/.jack_host.c.swp deleted file mode 100644 index eb9bb86565a58186558dff54c4a11ab468d9737c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28672 zcmeI43ydArd4R{5K$eCkl!nw2QIG99zPq{Jhh1vLYa1^6uou?5+x2c-gU!v{d*|*B zJ3F)7nY-(?4TP2!;*>m!ngW4DN{W)wAm!0EfsJG-0{_UxSJgk94?7=>Lo+r^o@ zeC;f*npzqll|U+i^-17TYuC=6?yXxktIL0Ba(z+L(5VDc38WH8C6G!Wl|U+iR0634 zQVG1~B@oTM!TKq+xBxP+A?CvP=eGFgMt;5(X5!y3iofF~&~e_t&mQ_&4ad-em zVFUcxFIv{e;G-}M8{zRwE$dg;RCP$^H7Bw;2^vWp85sL zItjbr-!H*`0DlahgipX-&<~fux8rhdyLl4e<2Emi0ck3y#BXxD4J5Pvhvg4Nk)d?1i_(SsWg?PONU&4j02`ahiMz z&Ojer0vq6YoF@-L0gl2bY=SG`t#A=s2pi!7_&1y}&%tNl5mai%z~6_`Xw&@^e8Y%E&Q_9s84aS>hqakY7$8krm( zZnxUXK}BV%e&|m5PDy!zKc(D#-Mz|HdzDGjug>Zm!d~^xce+IB>QH?qXEofd`l7vLM|Q7u z$}&Z+1Vtwd^Tk3&|L&J7_N)`;BNczks`xH;kN0W8)S**YP7-y=aGyIz0UD zopGMyxru@N=;XxM!aL=XlZ%_3b`RF`Q4qv|cr-V`bWm&4el+legw+w2^g`a| z<;`lfI%Ll{Dy&vSfNrSxXRERo*pca8)Zvsx)6_oAlNXP5$Ja`;-72D#Bgf2;trLx& zfwGoNAC`zlb(kC&;?XqO#SPXeF9wY`MVIJ6A>-enEt3JLOdAt59&JjGHf8%I2_w^V z7|)g@m!xPqrIeTSOi`t_qUTLfmWf^~qnTZ$bTZ>5vt_)_lu9X&IU;XHdYF;c8|Hz2 z%3!BUsCY(M*A&~U1s0cfCBdrZhG}S(I0>0>rHe+&jD^{7igH=jt&Aky;2pI#PQ=_R zPpIwQ|4 zPqYv)_B=0GkO8NAMYu;NBMmSVFWo3hvQn#8Y0NC9wj^)1Fqi|o#PAH!6|y>W3r1^6 zQYN$(k!fO`P+X!UDXm6H$1X-y7D0>Z<|^W5JUI)B;Xo15!eSb01}~PEHM|zs%t_9EUT_5)@bN{S&~U$mhY}#^r|IC?Uj`Ex!=y|{SA-x>0tS< z<#AM^(o3GXfjpw;>p^=}j~cAl{*1>;^e}6wLAM-Dt3fXaDp_?cYt6vVszW)|y|bsM zdq>Z%?jALHIH!j-6WX*0ehBK*&`koEQtK>ws>xD)M4NZ&;96qcDN5@r8jpfEChWaLlbK`1ka(ry`@Ia?h zhbgBN_}tk@>ba4l>PT*UJU23Nv{#7`m>88a@Ax{h%NcE#l2cja8tJkh8W`_8Nch~f zL&HN8M^#Xfgc=)MG<69DQ*jH`h}g7-lw>-P8A0@^8<^#rP?wEJ0?po~+qmSG z7kMB_DfzFD&Qfuwrdh)DwX2=o-M^vaz`Ys|3JA}xl+@l*#eBaeo>@AJcExk(=6u=D zK%_?%L`4`YXuzDgR|gphme~LO*zKPIvHxX{|3}#S&%rm~EIbMyfzwcc_rQMG1pkd6 zK>Pv^!R>GW2A~ICCe5efwEvl(pNCr@fE(aS*Z|+b5AY&<3!aAi;3S-YtKrA^2404* z!583Bct5-kW*`R}LHq}Q3x5e8fO}vc^ul)dF1~<2g*otHFKmU)umQe~FW`&t=kN&J z4JTm+TsQz*p$#sE7w`{!4(@>w=!Pt`!$#Nuui`8CPxt|RAHE7-fydyBa3A~*+yU=} z+u_%t2VTIZ@J+ZEPQpCg0wb^uw!)9`FNoja9tZ?o*8dmlLiK4oN{kb2Y&O{?G8>vD zXl+p|>n3gf>m{HU6!mJU6ODtX%{k#lnStLLn#d34hK47{2gLPIj{PiQ#N^DnZOgV$ zds&Q8aLQWFSTLrWEIf1KoYTgZBreVe5@CAPi%+twI8n9Yt8OxCUh5XUAT$Or8d;WeQLa?1Zp!2XKmY5F{m57a*gR_wW-;hh~!c8&o;lRxo5@2vYLao zv%ww_|E$ER`K+d^kv9BG;>;AEY$rmMobktsD_L8J+8JsZFqC)tO=5)P^;>a&bS94^ z42z6@2dl!JXRVgBzVr(1_(kmGkdz|M5?53aXK%^%C4uDSSOs^g!Y?9AvOwKZb)!8> z7m+N+tG+a0(q>71+Jn$2-=(E)4%$-k+{)!{YjhfDKO)|A$zr`tAqCfxOD0l`*L~U> z9TZI+YHf!*0V6UfXN=+7F4^g*x>xFsw`$Z{P%OB50<|n8Z{4(}sq^9*ti3eFF>fSq zgl~qt@pd$}0)CHt>{-tzp7kXyf&R)i^1(rq0tbcm&0^@G?&1Q1Q5t!f>iCA_$=HaB-(qU#4H;jA%rMHZpHnwqbW z?UL%WXU%>|(ke-ZY7uEeK{By7P_}AJ$r{w8>C?5!_ZbI~sZ8T2UB0^Us$XiZ1J@jN zrlyU0j6N$n9X?wo%{?l%FbQ+&XY9t2toE7i(>tr6wSDRbo6DqDN&Z`p^5+3oUaQ<-1zUN`vd z>Mt1%8M`u7RQvX+o$cys{9jY^H})J?d-U)zdSy@~*)SN$uVVB(L#C@fElDBr1&npi z$;5SMSuh<%b9=hF78Vvd!(!NI`F7ow*u`CCG(*^xo1NPcE=+ea(di-5k~IFXBwZOB zHUDUwS2DD98~DybCRU5O_{23@#}gHl#4y9URpXOTygksW&|BWrl(C*BWUW$Hh)|KZ=wE|p;ZZmPzYBN3G;D$^ z;P0^0&%$Xq1t;MI6rmrkg&mNA^pi>;l|U+iR06Lr39woVJ^f$nfh)a^Yc`SN1$lf9 z>)f$^e&@GzAzBRe=2Ea8So>+PpL237c$O7{oK=$-`sF!8h_R~|`#aVU#2k1d;F@H+ zwovAD-Kr<(){xj5g49mz5q3>=SX#RCji96?GD5BaRT|p_FcQUnzwJ*y`Y2~+K|E)>ipMNs7n6)o{{hJwGYdeulEcrCfq2@`` zqn6{%5}_qhONiw~pi^$lYAvyv3%8aSZuvY4w}vQd2-4g+SJ@2_`~NSnmBp?W`(N(x z{|UCf3$o9D4ZMW?{v3Q6PD3B;fh$4w^*;)K0C&SUjKT<94f|j(^upU=6TEFT4w6@Bc~4e=mFpbX{Iw%hR;BsRU99 zq!LIakV+txKq`UPs027)BS&nKo#A*(Sg+ROO-0$5XMZ&_rw=s5+m4OL-_1tkT+?oy zM2h1V7R~LZjBMjI9^;Tbvf4#Qoul69lc=8KPes!@M!UK5$e!mZt7$W~wp%Dq+s#2F zeYmN9(x~+y4V#=xtjYKeW4yH}$6ZXh_4#jo{iV2Az&WwpHBlwKT_yJ_t6rWZ%ki=*)sTp6aX@r$Ek|5rKteHCZM#r~h+$4l7! z-+~w5Z{QBN9d3p!Tn7Jz?f*k~6}}FihBF{%07l_bu;AO+`(K79LHq>w!zuVpkTU>3 z!RCJkz5*YEhu{!g54+(<*!EunIS+6f41@fwfF8IEUc%l#3s1r0a37q3Q?Lj}U>9tH zx4|p;I{q3Sf}7wPkb3~{0{L43m%&AFA#8*T;Capnd;^{a`8xuihI`?|@FDmh^g|9_ z;f%od;gfI%eh=<|o8T(g1((8KalZc{xCH{(4L{^O|10qK@G#sCx594tF75Ljcmf`Q z_k(V;*XT^27W*|Uf%HCzoQFM--ZnSK_T;F2dfQz8sT5A?>9hZ@x7+6FeGslO>n&Zq zZCpFy*=V4p_d(M8AgzBoDZLMp-UmtVgBWjC;`JMO9o`3ty?pUamzw9X?zGfCPji=} X^`1#0H|}cGuhGOY%~g~YuD|>bjk^TE diff --git a/libslv2/examples/plugins/Amp-swh.lv2/Makefile b/libslv2/examples/plugins/Amp-swh.lv2/Makefile index 4fb858a0..55180c2b 100644 --- a/libslv2/examples/plugins/Amp-swh.lv2/Makefile +++ b/libslv2/examples/plugins/Amp-swh.lv2/Makefile @@ -1,4 +1,4 @@ -CFLAGS = -Wall -I../../../include +CFLAGS = -Wall -I../../../include -fPIC all: amp.so diff --git a/libslv2/examples/plugins/Amp-swh.lv2/amp.so b/libslv2/examples/plugins/Amp-swh.lv2/amp.so deleted file mode 100755 index 281b709f9cb4488bad6440dc61027db7ba80c08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2629 zcma)8O=w(I6u$ElJ84smHQG=`MhH4tFccCYL2WiDL?7_|Ce_j>q9QC};$E>wwi|z9I;>c_whGyvfi2Uf z_&xZ{g72X-+7Vhbwx5AcW;=cpC$9TbfIG;vhtRSIybHV=+zkFN;+Pnd#Q!5wy7R;N zl0rgF_>lf7q(&{)F&EX|EcPlGp^VgHVB_B^Zq^^$p);==Iv(5iL64xnUf@3T zzg-QPE+I~Pjw7;(OeU8U`P|HDk$LlAe99>#y>#Bsc_QviCH#bl$0rMgc)?G2K1{C6 zVGPOQoDXUIOyj)9uQYzG@jHz_YWzv#HI2V%yrJG!fj%e=giH3i6wvoZ z#a^p4aXnNPfBxf_m5*kE)hDEF0Jdw3mDfAMUkVW&G$XG}ES2r0lD%AQs{C1*SgzR1 zm5JJdy@>&cYP4)`ezOuRT?vhEC^2NOSH#lMTIIk6d$TTJeBN&Hmh=E482Te-=pS=g z&GEA!hS9qc2RJn&w{so7VH}PLdF-b0_U&%@crluDc{fccX#JA#p$$b<-BRD_(peOCe@`Zh3-T)&%ZEW zF%RYryM#r~{kQ?<9)1qYJv4fRK3 zM~;nmM*FNDt1o)6r|0ROr+S`=#`2!yITcPfP-R zPhrYPsYD?qtf{juTon4Aun>zjVfoG(A8Jl+QkoLkbW&K;Ip4}>(1KkntYj{mbzFaI zoOdBS3?Jqa1(bPZZU?jukojiLdHyiB^kcrspM$aWwtSd(Oj6qD$NG?27ei1bJ&7;R zT>7z2WY&o~iG8wO{b2sXI&)Q$zc4{yqaSGiOf&!IJ|lNQHe~!>f`PF(Zh5z$f%gV= z68+fk2{7Z){(Bo34RVV>C()1m8kqj{FI}Z0YxJdEuHgV_}R=6emSN zlZj#GYV6o=kcnsXMx57*y3JM1X$t8ov9?NAJ+ObJ zt6BfweQ5SnNbnX`c~<{3qucjiXvggwlDl2H$WKVF%tpPjQXKEz+j1YqeaRkKFOD>T z_zwa(UY-*{?1(6kC*O$HyMa9M4ru*FAWywHt=qthNJB>JuK>;b0>PX0lhC=2NYv9x zlwa1#-Jutub9^M;@9zQ|^;zhR_x}axjradW=!O_y;QX|b{0?v5`AHm9ZZSWIqcxdx zT_@=u&v`!8w2LQz>!%aGL)9y~%9_TjVEENzgGXN;67eIWV}}Pv<6|QuC+$=5Q-g;` Z?YMed=y%5Lj|ug@;G1H{(?dQ@{s93-ykr0X diff --git a/libslv2/src/plugin.c b/libslv2/src/plugin.c index 27fb481e..8c7a4cc8 100644 --- a/libslv2/src/plugin.c +++ b/libslv2/src/plugin.c @@ -60,7 +60,7 @@ const unsigned char* slv2_plugin_get_data_path(const SLV2Plugin* p) { assert(p); - if (!strncmp((char*)p->data_url, "file://", 7)) + if (!strncmp((char*)p->data_url, "file://", (size_t)7)) return (p->data_url) + 7; else return NULL; @@ -79,7 +79,7 @@ const unsigned char* slv2_plugin_get_library_path(const SLV2Plugin* p) { assert(p); - if (!strncmp((char*)p->lib_url, "file://", 7)) + if (!strncmp((char*)p->lib_url, "file://", (size_t)7)) return (p->lib_url) + 7; else return NULL; @@ -152,7 +152,7 @@ slv2_plugin_get_property(const SLV2Plugin* p, rasqal_query_results* results = slv2_plugin_run_query(p, U("SELECT DISTINCT ?value FROM data: WHERE { \n" "plugin: "), property, U(" ?value . \n" - "} \n"), 0); + "} \n"), NULL); struct _Property* result = slv2_query_get_results(results); @@ -175,7 +175,7 @@ slv2_plugin_get_num_ports(const SLV2Plugin* p) rasqal_query_results* results = slv2_plugin_run_query(p, U("SELECT DISTINCT ?value FROM data: WHERE { \n" "plugin: lv2:port ?value . \n" - "} \n"), 0); + "} \n"), NULL); while (!rasqal_query_results_finished(results)) { ++result; diff --git a/libslv2/src/pluginlist.c b/libslv2/src/pluginlist.c index 61e4c4b6..20e9dea4 100644 --- a/libslv2/src/pluginlist.c +++ b/libslv2/src/pluginlist.c @@ -138,9 +138,12 @@ slv2_list_load_bundle(SLV2List list, rasqal_query_results_next(results); } - rasqal_free_query_results(results); - rasqal_free_query(rq); - raptor_free_uri(base_uri); + // FIXME: leaks? rasqal really doesn't handle missing files well.. + if (results) { + rasqal_free_query_results(results); + rasqal_free_query(rq); + raptor_free_uri(base_uri); // FIXME: leak? + } rasqal_finish(); free(manifest_uri); @@ -162,8 +165,8 @@ add_plugins_from_dir(SLV2List list, const char* dir) if (!strcmp(pfile->d_name, ".") || !strcmp(pfile->d_name, "..")) continue; - char* bundle_path = (char*)ustrjoin(U(dir), U("/"), U(pfile->d_name), 0); - char* bundle_url = (char*)ustrjoin(U("file://"), U(dir), U("/"), U(pfile->d_name), 0); + char* bundle_path = (char*)ustrjoin(U(dir), U("/"), U(pfile->d_name), NULL); + char* bundle_url = (char*)ustrjoin(U("file://"), U(dir), U("/"), U(pfile->d_name), NULL); DIR* bundle_dir = opendir(bundle_path); if (bundle_dir != NULL) { @@ -185,7 +188,7 @@ slv2_list_load_path(SLV2List list, const char* slv2_path) { - char* path = (char*)ustrjoin(U(slv2_path), U(":"), 0); + char* path = (char*)ustrjoin(U(slv2_path), U(":"), NULL); char* dir = path; // Pointer into path diff --git a/libslv2/src/port.c b/libslv2/src/port.c index e25eb2f5..14d95ff1 100644 --- a/libslv2/src/port.c +++ b/libslv2/src/port.c @@ -72,7 +72,7 @@ slv2_port_get_property(SLV2Plugin* p, assert(property); char index_str[4]; - snprintf(index_str, 4, "%ld", index); + snprintf(index_str, (size_t)4, "%lu", index); rasqal_init(); @@ -80,7 +80,7 @@ slv2_port_get_property(SLV2Plugin* p, U("SELECT DISTINCT ?value FROM data: WHERE { \n" "plugin: lv2:port ?port \n" "?port lv2:index "), index_str, U(" \n" - "?port "), property, U(" ?value . \n}\n"), 0); + "?port "), property, U(" ?value . \n}\n"), NULL); SLV2Property result = slv2_query_get_results(results); diff --git a/libslv2/src/query.c b/libslv2/src/query.c index 20307355..ddaf6485 100644 --- a/libslv2/src/query.c +++ b/libslv2/src/query.c @@ -35,7 +35,7 @@ slv2_query_header(const SLV2Plugin* p) "PREFIX doap: \n" "PREFIX lv2: \n" "PREFIX plugin: <"), plugin_uri, U("> \n"), - U("PREFIX data: <"), data_file_url, U("> \n\n"), 0); + U("PREFIX data: <"), data_file_url, U("> \n\n"), NULL); return query_string; } @@ -51,7 +51,7 @@ slv2_query_lang_filter(const uchar* variable) result = ustrjoin( //U("FILTER (lang(?value) = \""), lang, U("\")\n"), 0); U("FILTER( lang(?value) = \""), lang, - U("\" || lang(?value) = \"\" )\n"), 0); + U("\" || lang(?value) = \"\" )\n"), NULL); } return result; @@ -62,16 +62,17 @@ rasqal_query_results* slv2_plugin_run_query(const SLV2Plugin* p, const uchar* first, ...) { - va_list args_list; - va_start(args_list, first); - va_list args_copy; - va_copy(args_copy, args_list); /* FIXME: Too much unecessary allocation */ uchar* header = slv2_query_header(p); - uchar* args_str = vstrjoin(first, args_copy); - uchar* query_str = ustrjoin(header, args_str, 0); + va_list args_list; + va_start(args_list, first); + + uchar* args_str = vstrjoin(first, args_list); + uchar* query_str = ustrjoin(header, args_str, NULL); + va_end(args_list); + assert(p); assert(query_str); diff --git a/libslv2/src/util.c b/libslv2/src/util.c index 55953b80..1058b8d9 100644 --- a/libslv2/src/util.c +++ b/libslv2/src/util.c @@ -50,49 +50,30 @@ ustrdup(const uchar* src) uchar* ustrjoin(const uchar* first, ...) { - // FIXME: this is horribly, awfully, disgracefully slow - va_list args_list; va_start(args_list, first); - va_list args_copy; - va_copy(args_copy, args_list); - - uchar* result = vstrjoin(first, args_copy); - - //va_end(args_copy); + uchar* result = vstrjoin(first, args_list); + va_end(args_list); return result; - - /* - va_list args_list; - uchar* arg = NULL; - uchar* result = ustrdup(first); - - va_start(args_list, first); - - while ((arg = va_arg(args_list, uchar*)) != (uchar*)0) - ustrappend(&result, arg); - - va_end(args_list); - - return result;*/ } uchar* vstrjoin(const uchar* first, va_list args_list) { - // FIXME: this is horribly, awfully, disgracefully slow + // FIXME: this is horribly, awfully, disgracefully slow. + // so I'm lazy. uchar* arg = NULL; uchar* result = ustrdup(first); - - while ((arg = va_arg(args_list, uchar*)) != NULL) + + while ((arg = va_arg(args_list, const uchar*)) != NULL) ustrappend(&result, arg); - va_end(args_list); + //va_end(args_list); return result; } @@ -112,7 +93,7 @@ url2path(const uchar* const url) char* result = calloc(strlen((char*)url)-7+1, sizeof(char)); strcpy(result, (char*)url+7); return result;*/ - if (!strncmp((char*)url, "file://", 7)) + if (!strncmp((char*)url, "file://", (size_t)7)) return (char*)url + 7; else return NULL;