From a8aaf7a884c20e8f0caab98fd383efd73b51fad5 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Wed, 6 Oct 2021 16:00:47 +0200 Subject: [PATCH] #nomemoryleaks --- A1/coord_query_kdtree | Bin 32680 -> 32712 bytes A1/coord_query_kdtree.c | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/A1/coord_query_kdtree b/A1/coord_query_kdtree index 9f2db6c94f50caad34341a26b26e63b2dc578867..a2b0bc784a0f1d5c81f141a8acfa67493dd7174f 100755 GIT binary patch delta 3032 zcmZuz4Nz3q6~6bqefz^MyWlR%F1xV1q5>i;1QA6+K)1XNLHq#(#R87v8WF6JG^vKw z(9~|w>h_r0&fvtDPQ^~zNVkb}{3BzgS;tPJ%?#s=j>$B&!P*KDO{ijC&wX!YOs02+ zbI;Fre(t&Vyk$V5QHdVPq|w2wX5O+T^ryh18}B@7d`0R%XZb_c`b^VEq@TALX@2Cr zM1iAGIAfkkqmi5Dw`p;y*ykG+`^wy6$TuG2Gm)Q^`OrtBuRoL|r$@oEd zH>rqb!52xnshg%GsZBKX45Q_UAy>BGxPIa4U zOtxR^N@Lh-6Q-W{Lip60Pk#f6$yV9~naSPsGdP-TpM3yBiKdPZSjPL0^U)|&; zG21dblMvD^jGlz+$+PtvnKg7(Jdl(PdRqnk3Rc*X4d;^y5kn))eGUA;=Ar;$o0Z;x z0ozh@(Y`$(!UlWnZu$bE?XWP#LyKjuE5&1z9z5+k?}_gKypxh=JN^HSEpR_2 z&))eh>hy$ge>1@s~0rCI6QGXJj3H^3C?H_3cFRHhYBJM2m; z;jVuPyVGp&x3pQ@QH4!#&7+l2;&K}HCr;nT1=#G`P7~o1myg~7yStXEp~GG0ZyA%M zUf&e$^Gz-G{bTppCnpwBf9TT1Ix%$XJYGBz4+u$lEE>K`G>LtJnu%MllvS7rN(2lZ zaps#|hKxUCV#vQDc!>Fq2GHXIW!z18(bH+P%J!IX5GFiL#*0QdxPq^Q4Kp*0zkXV^ z5q>^16ikY#R4mr6|KR(cBM$&pJ=A8(jI!4|jHPlh9LI2L5Ql)zLVrffRQywU7R4+g z^+m4y+&LU{%ElIk8`|N*8 z(iHAZxI6K1_i$f=`#vnQ3HP&iC22SA8QAcC+#4gSo^jBUT1-RAjR`;Dmc^^N8iPhl zh!a/K?0lGKI!w4Lvu48ZJ5Q2#SHS>U1`xP){e+(!C)(9L(zbjU)w5d27cVJp%% zBBA*&8@M9^406^)JTl?P$7(__87?H?h4)b;ys@Z^2QW17XoynWngX7O3iEBf075}(tLiiDst^9tZh8sK~QH^mfG*=v? z`(UhM4&4scWd-;FdUjcJtDseV$g-$ZHxR9TpAl`MAG7c)ki?0o*oX`#6PAncb5Yg~ zFl1ap7el^;B)ONN7@TNx7{K5@$ZQa|e4CYL!EIiY6R;e6F-jCoeamwT`8_C@0%$7a z>d>f!Ncje}Y6oXz0o$267a3w=%`N5k!>7w<1&=c|i%A?iI)6xX`zaI7J<%#A-Ell! zm%s|YjbC}TijO+_Hz0uPGBN}gZddd^N%S0K@6}D z2U^|0pn-gLGCn*I)UjzO235a6@2!?cvh`F@SB_TzAK0lTeRPZKsAfYtx9D)A07&-nKQR4NAW%t zRI||BstU7g9|)>lvb|BM`j}Ek{d8)4?qsc;nhTey8nN09F-au6T)ejgl?gV)E$@t# zB#$d9XnzZcsx_EouG~YsB9#w)vtxk+B=IsrEeu&}MuIC-*|4kzHRfw2 z7MDCK;eci%vE(Xz3rU0vl@1z)>y;JDSeLkPKwXHjsCuCywh;0j24G|V7t||bkMCGs zZq^B0m$k}%A6mqEx(iN=)pS1y{%Sf1Ymoj5-a>jJGUo52IF7rj*f<`q!f}j@RJo~z z4T7$ai~j^)mNE*OV-QzePxnA;wU-`*aCHu?f(z9p`1N{Ry@0+C^H=PoZaA@`CVdCC z+A4pI%3@{RaVzDp$ztm^*lV_6S$k_XV_9F+u(AqQva))So`_ss`7c)1+10G9&sVdu zlGivW{IJot#?|x+tW9MfO zBT0qw&Kg<^;m$Yd0?6OtrF$Z+JGR7QQ!l+zq&reC-w$aAT~CpYZ&D;b_8_f706!2XS delta 3039 zcmZ8i3s6+&75>k?d-vf2%VVD|vMi#ayd-FdM&-G3QBl-Dtl|S3L43e!!Pi7K2{CqO z#fV3nw!u`*q{V6MNOz1_V~aJT*gT4pj&&wZVu`kB5;V~&6EU~vzjw7x?#!OYf4=jb z^Pl_wcY77+RA5gUbastjE?Q6I{QmBN_&qasKlEoD`hLNg%gxa#;SSLm18L#oagqQ= zJe80F#_;C}Z$s8oa>zFzhYFJApzn6XP9uAW?Avni{J;f8QOF+R_Gvt2%YzKOW6MhR z4=YNoY-#BsaNl>9SYJ=ACEM4x$wuH~a){v!`*Qd>zGcsbTlk6H1v7BKp5uJ`2Sxb` z_Hf1*1~7K^Gn$IT3o$@3uodJ|ue!X1VQV z;EbWl-e6Gy9!g4vr&YukxYIpR7`&?%zUcM}Va<$6^a@)vvy{x~n)wQuf@Yph^ul@k zB5|s)>kfj)iMgXvg}Ha|)+ig?$Hq~)f~Yy~atFF`aFiWtP)f>$^{Q>hilkg2aM)WN^HGdSuHh@NHf3DQ z(I=PI;+rYKKvHB$$GKkphR)Pj_59QBx@#?Iz5Jl|P^;z$PT;s|!V%zV@Ek>?CrOJU z5gB}R&TT)<a(qA;-F!qpz647saN%sN#q%l!84DMr z_C*)o`BG8dCv^RFMY%#c@!yIvOnM>dMB4NX($h${Q2A=o;Xy@tk#rKhhz`;f;rUOw zVY>`+_0B73h7cC%r{U z2|B61p@|tKzLeqGN=rJU^j}ia4sL^f4n@qWZIo`)lF>j5k~?9&3N7Zi2CD|oADEUZR*aW43AR`K#0ol*AzZ$hWLLNMcd zTo~iZh*_FTVuVZ!E6EU4!ReVafqY{pM~;a78Aom*VQ=Lq4rj(p4v0#AoyTxQ$y&R_ z$sO6`$BK+Or;-O03YBDym0lvp^#cjLTZrNLO9&!lk-WiiY=$J!=wULx~IJwZiNc-(N>xc zW-Kht%n;KEHQJ=ThiY*lu}x6tM6W^gQOWcO!)g|bzbTa>IJ96 zsXh*;rav@ldJvoBD%gY{%H^;VU1jC)F4mFUhsQ}C4vVuwKzHo*+5C>ZH=FKQ_~z_n zu%4vNm?jI+pYjgW$r;|nr1C1*jLqfQ@EX2To(VvyZUhIOnmccF z1I^T~wp9>mt3O$5r;;N4`4Thd)lpmf=dGf)9?auyl~wSz-XM86e7)i(Z>w(sZ|nX7 z-d6fTH^50OeeMBRvAA*{{1q=(&W2`8t(pz}=&veBoy5eLsb1k(^AvMgfnUSnAT{-f#$?t9(}v3TV9q{_HB7!#9V7CmlH9K;)9>HfqM(o7$`NG=W1 zYUjk}XC=-{U#79N1G^2zxqv(eKv@DeoL*LzkWHB`e0j0mGBOMDU60bnxxyKX{wbPn z(mW*kRxjJT%o$Ftc0ttprzDfO^^yc>(lVU0G>HbecIjftdRleft; struct node* right = data->right; + free(data); free_kdtree(left); free_kdtree(right); } -void lookup(struct record* closest, double closest_dist, double query[2], struct node* tree) { +void lookup(struct record** closest, double closest_dist, double query[2], struct node* tree) { if (tree == NULL) { return; } @@ -85,7 +86,7 @@ void lookup(struct record* closest, double closest_dist, double query[2], struct double compare_coord[2] = {tree->point[0], tree->point[1]}; double dist = calc_euclidean(query, compare_coord); if (dist < closest_dist) { - closest = tree->record; + closest = &tree->record; closest_dist = dist; } @@ -101,12 +102,12 @@ void lookup(struct record* closest, double closest_dist, double query[2], struct } const struct record* lookup_kdtree(struct node *data, double lon, double lat) { - struct record* closest = &(*data->record); + struct record* closest = data->record; double compare_coord[2] = {data->point[0], data->point[1]}; double query[2] = {lon, lat}; double closest_dist = calc_euclidean(query, compare_coord); - lookup(closest, closest_dist, query, data); + lookup(&closest, closest_dist, query, data); return closest; }