From db5330e749b67256de358f4008208e92d26cddba Mon Sep 17 00:00:00 2001 From: JustinAJ Date: Mon, 9 Jun 2014 13:16:52 -0400 Subject: [PATCH] Changed some types from int to size_t/unsigned int. --- Jupiter/Plugin.cpp | 9 ++++++++- Jupiter/Socket.cpp | 12 ++++++------ Jupiter/Socket.h | 10 +++++----- Release/Jupiter.lib | Bin 218500 -> 218500 bytes 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/Jupiter/Plugin.cpp b/Jupiter/Plugin.cpp index 86a09e5..3afe8af 100644 --- a/Jupiter/Plugin.cpp +++ b/Jupiter/Plugin.cpp @@ -35,7 +35,14 @@ Jupiter::ArrayList *libList = &_libList; Jupiter::Plugin::~Plugin() { - for (int i = _plugins.size(); i >= 0; i--) if (_plugins.get(i) == this) _plugins.remove(i); + for (size_t i = 0; i != _plugins.size(); i++) + { + if (_plugins.get(i) == this) + { + _plugins.remove(i); + break; + } + } } struct dlib diff --git a/Jupiter/Socket.cpp b/Jupiter/Socket.cpp index bd4141d..7d40c01 100644 --- a/Jupiter/Socket.cpp +++ b/Jupiter/Socket.cpp @@ -251,10 +251,10 @@ void Jupiter::Socket::freeAddrInfo(addrinfo *info) // static freeaddrinfo(info); } -addrinfo *Jupiter::Socket::getAddrInfo(addrinfo *addr, int result) // static +addrinfo *Jupiter::Socket::getAddrInfo(addrinfo *addr, unsigned int result) // static { addrinfo *ptr = addr; - for (int i = 0; i < result && ptr != nullptr; i++) ptr = ptr->ai_next; + for (unsigned int i = 0; i != result && ptr != nullptr; i++) ptr = ptr->ai_next; return ptr; } @@ -265,14 +265,14 @@ char *Jupiter::Socket::resolveAddress(const addrinfo *addr) // static return resolved; } -char *Jupiter::Socket::resolveAddress(addrinfo *addr, int result) // static +char *Jupiter::Socket::resolveAddress(addrinfo *addr, unsigned int result) // static { addrinfo *ptr = Jupiter::Socket::getAddrInfo(addr, result); if (ptr == nullptr) return nullptr; return Jupiter::Socket::resolveAddress(ptr); } -char *Jupiter::Socket::resolveAddress(const char *hostname, int result) // static +char *Jupiter::Socket::resolveAddress(const char *hostname, unsigned int result) // static { addrinfo *info = Jupiter::Socket::getAddrInfo(hostname, 0); if (info == nullptr) return nullptr; @@ -286,14 +286,14 @@ char *Jupiter::Socket::resolveHostname(addrinfo *addr) // static return resolved; } -char *Jupiter::Socket::resolveHostname(addrinfo *addr, int result) // static +char *Jupiter::Socket::resolveHostname(addrinfo *addr, unsigned int result) // static { addrinfo *ptr = Jupiter::Socket::getAddrInfo(addr, result); if (ptr == nullptr) return nullptr; return Jupiter::Socket::resolveHostname(ptr); } -char *Jupiter::Socket::resolveHostname(const char *hostname, int result) // static +char *Jupiter::Socket::resolveHostname(const char *hostname, unsigned int result) // static { addrinfo *info = Jupiter::Socket::getAddrInfo(hostname, 0); if (info == nullptr) return nullptr; diff --git a/Jupiter/Socket.h b/Jupiter/Socket.h index fb8ecad..b455ca6 100644 --- a/Jupiter/Socket.h +++ b/Jupiter/Socket.h @@ -109,7 +109,7 @@ namespace Jupiter * @param N Position of the addrinfo in the list to return. * @return N'th addrinfo pointed to by addr. */ - static addrinfo *getAddrInfo(addrinfo *addr, int N); + static addrinfo *getAddrInfo(addrinfo *addr, unsigned int N); /** * @brief Returns the text representation of an addrinfo's stored address. @@ -126,7 +126,7 @@ namespace Jupiter * @param result Which result to return. * @return String containing the text representation of the stored address on success, nullptr otherwise. */ - static char *resolveAddress(addrinfo *addr, int result); + static char *resolveAddress(addrinfo *addr, unsigned int result); /** * @brief Resolves a hostname to an IP address. @@ -135,7 +135,7 @@ namespace Jupiter * @param result Which resolution result to return. * @return String containing the text representation of the resolved address on success, nullptr otherwise. */ - static char *resolveAddress(const char *hostname, int result); + static char *resolveAddress(const char *hostname, unsigned int result); /** * @brief Resolves an address to a hostname. (Reverse DNS) @@ -152,7 +152,7 @@ namespace Jupiter * @param result Which result to return. * @return String containing the hostname of the stored address on success, nullptr otherwise. */ - static char *resolveHostname(addrinfo *addr, int result); + static char *resolveHostname(addrinfo *addr, unsigned int result); /** * @brief Resolves an address to a hostname. (Reverse DNS) @@ -161,7 +161,7 @@ namespace Jupiter * @param result Which resolution result to return. * @return String containing the hostname of the resolved address on success, nullptr otherwise. */ - static char *resolveHostname(const char *hostname, int result); + static char *resolveHostname(const char *hostname, unsigned int result); /** * @brief Interface to provide simple connection establishing. diff --git a/Release/Jupiter.lib b/Release/Jupiter.lib index c1c96b3f475695e9b7b3253fecff14e594798df9..745430bcb3524badef7b21644d42047cfdfc4045 100644 GIT binary patch delta 16791 zcma)DdwkF5_4j!`E)hf`NRTU$L_{R6LF6K?De(=Ob*iM7wWt!UwW>Ln_9ZI;-p{yX^=t~{`4b!I9haihd2zUk4*U#Xo#Evs;>4V-k=Zq;Y!UXQgd z-esKX{trcjp<>fOf;X|gyLZ#JT<_r*o9tXO+j^vwg!l7K`L-#F+By0I>+UW-<?M96nDZN9fPWrpX>ViML{=SI{M^2$lRgyoaD1G>%ii9`1teKj@ zOFTX7G<;DXy77Bw>C8~|AU~_fRL;`ju(YYObdavkR0&K0wv!U;TDZzqML4<+Y^h3_EPS|% z(y!;K$mXa>Kj79}7qnDK-iqAjx;jqyp#elQ3TQ$d8c%GDey){DWM=hut7v_wm1;wT zTac5r-=92E z8=>xFb{HgDIs%qP!qS!R_QFu6F#)Wkc(jaEW&A8Z(h11=NOc!K+xWUem)cfM;%DKf zeC`?q%%gPAwyGP)r={K(s@zlnzd1qb4}{VBXgk$KS1yLcE^n!VD5LbPI~+p}wo?;W zmghx?VNQG122t&4ugdua#*8e)m~}$uc;4@-V-f=xlZU26sYs$N1lkyfHqM(cyMw;< zbAb!gIC4oyv>MG)j&uSCKi5Y^QevdQ@;E^EGaaoMM0b!4wEkvv19(RD7k3c57y~Uk z3I@tLItnc9s7A5^Ko_N_w6Glo(m{bPpg?&itG%~uJUP-$vCMwH{7nO@B&MpEZYB;` zL|WeHq=vXce3qBTG+;SuUKgW=yTpt+%BrCtD^*)@D$|=kr-j}UD=@F`<4C$5t0uaO zgUm^5)Oh84i3Y04>0ihBoSqC4x+77vj&Gy7Fef4!JIbaKI5%Dm{7EPx28bN`b3x>ho<+&?XCfyFbPPr8}x57EA1m^zWr3x~Q(YvV+wW z0q@3%D91kQU_G>pD(*w;kyB=}JS$6gqFbGO8_Z;+2xid#lz<4$ z97sSNvCN9ohf>5VZqQLsLaM~mC?dIfLpK$xD`Tw)eNR{M3I{l@n*^BCX^r1AbTQeF zE-q-)*c`yHI9kd zNtGGmIP^Huh4z#}W+cF908V{^l@we9v5mFHmW6G33!{b+R#NFcOCL5`&C*?(HSVRpq%CXRS`Rzi9@r6*idRow#fFuq-wxzoH}oSSZf$? zZ9otcJ$0aPL9CItaYVQuyj}6@^k8qZuG0sJt`%FI2z)h2J<2xGv{3uCGc7F7F*4vGS+!~iVrMQlbMbb=U#QNP4^Hj0MfGUsaqlK!w_Gqg^-~jFr z%>kl0L{#;F%$vmAD1ARgnpD>-?j(;WK@)O@i$`#RrBYA;%%8w?sD2-|o<-6Wcva~L zS;YnO%m^u%?2NLJ;tbLaBZgw@M#^-+P@FSLpomNC@-t)+C#_^j}5)eOD_p1_77dC~0$z}R#iR$jH%*r?RgCyMm=5i!V^(KsHtY=LL zM%do*f-u)nlpX`YtCc#j6i_`j-D<8EOps(nRnS34Ca9H0!Wp7h((2oa?pP|Kfnk(h zR_fdAOaalWFrX#tt?~L+si;kKgMZ{3u7)0 zKn$^fZ6$`cZv)Xk2~Yu2qCgdKTET3P-j-}*dQ{|2nrU%w28m=D4F(_wNTLc`eMG&?dJ zXXI3%{XNj;@YsZpbr6sp->Xl%f}ZndT@`J5A+t{V_&>O{}~N5nh%+9#(Atlf)i zH@#v-1+V2T-kO;*z2aJgQur))u;+Pf(JX--x6+p7(n@*IT2n4vo+i?S+0I1TXSRBr z1H~i3XR`x{W1ew{=RT_DFfkwD#yuvdgT$GMcReP=++!!tksiw}vUW~Di{#9i`BTXp zW3u`PE1l=lzIyDhB#?Ysx%lw_eJY=Hluvj<^kKIgcp|`3bPI*}E(p^RloNY+bk#y> zkSr$j$p*yG$~$4@$FNeDZG!{(-A{{(?BAk!BDLOjCgBV7Bo6G_v6;PC1KQ3Hvo;^X1_DQL5kcNgf)FU1$e%DRQJk`1V;2+)ZQ z$b3e0Vgrsn6F|%cl>bbKjYH&f=;i&@)*#f%JnZ0|*!G{xh6~S)$sRmt`W);j+tW)g zTO{#eO==g3CRjl*_vZaVsuJ0a2f)-F#sRkrdedSRS@nk1PlwMH2hmV-Wr3f!_lB!m=d*}$x zam>JN?G>04D)Ox1I&Yb{+30u^mP*Gff8X)-#ieR4t88?^YZ&kaf3Q01y~{*h4qNzg zzp(L%FvjlHnoe;v`P`mJJb1@;}$a&o0qOYV-7yn;jC_nq|0T9@A{ zdFJw4)d0WM4e(nnYZ<8%s|2ZpLLRR#R7sWQMm0mbjY=EDwOWX&x8r974AFyYhR~qX)aG9!%uP{R%37a=iPOc9~Hae;`3q-wtJK}b**T~CVsY7 zOyp-%eX_{+)%6GV z8cZW1!ZhkZMBa)a1;J=%3Hh&!1pZF^(d&XYwqjznSV8uC_B&JJ&1yNNq`2{c&H5bz z9F~^)hDf8d-|&XhG~awfIvBmc6A*;+`@(*G!&duaNJdqrzt(_`H#~*-C#r~HP_=C&!w`Au;wj19LbDY(& zV`1O+o!_@ZvX7^Y?{@}F8$3pA+a+TJH|&XTOT)%ICj4O@=R+EXdthuRiw-ERhCKzk z=Wdm$3hvZdpUR~NE>WqwC0*SN#2D<_?G{7LlWOiBQHA@)@jVh3-oV`TN2!HI#83WF zB2F^~Zpq2>L%^Vs`rIE?UtP1;-L7I8ro6;5JPL!l=|ebAnN;IO!HR3jk$cto0)+ z$p}70kO#HzJ`&ioHuL`~+OTJ$4~ca~ORGL4UC4M*d{|!aFmU;>WS=YTh)8oWh>(ar zDn*xj-mas_PSpP8Kx9Vf)+pirDhW@(0NeC%t@t7IK=6<3oxEM2< z>OT=QF%p-2D$fwHl-BrNrChK06s}Wvj=5>A86%sIi5DTx&V?Bg`gfUh*{*l~ZrX)( zrN;$4SoPpp)d@M>L+pg%i5(8fkAwMn4|!*Q7gKctCb^mulAS1m+=QF>C$P>$d}`(E zjUNjM_l@l*rEhSu=A4pbb?X7D_rWP?hXxRz0=UjUoun6jCXv9&kC2)RO3VkO=G|lU z)?ueb2Ln%KrzP|tl&Z$f({j*d94IbCn~olXh8R%xbc;ebn~1Lli&DIYt27g&U}U!_qmv6KxOmieo(=22%9PS@gDHw zufWmUpBraPxrSax&Wm1@Zuk|NusZ>k|5`^}fRXFa2^a?a4|RC93B4eZC$@Y>U3Ecr z(+r)oFZ`f`_a)ifU0=B7YSMvEfO0R&p^h69vJF2ZuK?TPwiX(SVGdA-p2%5~LMzejkzk&lNfugZEiOsIbLHAx+w zACFxNm>=17b2s?td+7#<6XgED4^ou~0LF>pcKz@VDqRn_t_CwoXs^uQ7PefMy|UrH zxc>yZZ;#(I-gQj8Awvhd^yCe3sax&ILY)5Igq*ASqNffEvE2`9MrAnjU#SdOw`nDQ zE_@4CdVZU(Lz)JRFq9Ghyy>9i`c1W%Z6&_O2)#>Nx8S>Be9thQZ;1lPVRcX6UDRnH z>uuDsM|YimODd1QmaA{t?v-TR4N`L)4-0o=o!GcxgiiT|1Q03645ZittT(%7lb)0V;bA;M;C+$Nx*B-H2|WD8CHTfer=Slj*`;>K8u;u z#P+{bCu7B#CboNxil^#{O@)}l{#jGoz2MDZpVZ8DFZa4(M~EJ4W(VE6E(@{UTi1Nv zR~KT-#a%pk#Q~P`5eL{0wbjCg`)Up5qj4;9(4oxy!3r}Hl22RahuZEnX#U)HJyeu; zyC*pmFQWbx9GX89?!~TeVPZy~@|`@^x3Cv6>VlicVFbm|MH7tkaV}w{t^C~M`w2pA zE8G1Ef{~YV!)*5_5xhNW-&*W(s}lhdFZ6$cvaSE7=$pL*(uM;Z9WDWOGX?{-vtiGb=s{lwZ1( zP2AIFS3@@*#2A75l|w#r16&;l`0a&EhD9;9`-=*S9FNmSVkFkQL3%LOcJB$g6^a~( zjj0YCr}x)G?|m%=Q0sq&?J9>+UK%H0;S>swmlVQn3NgiP%2mp~m|pr&yhMZ8@obxr z5MTjL$h01Rf$$BkU(qSsSkK3g0~2lYf++u-P;3q$vc&Z0Z-OB;8w-Cs|+a6&`Z zcad7d+xna&DNJsr5VA0ruLH8Szt$hCuIWH-JP&piKN()Q*j2n>yqK9RFN|!s39@SH zl69wKNhmH2kEcjU^;P|m=4I?5v?uQ>CX4t9P zv&9PW_Dt%i6F!2A@%~xFbIbfpnOkt@KpgUc1LV1nLkm4QOFjkz&>SM%vqkt3)n(c4 zmk)!ejXvAU{$Im8;`?|nNd_L)C-wF#;dtPJ!6f3|_Hgbe1bjFAeI)$G!C{nYtP|#2 zv3g-|yN%%p6h;}2KemX5@ad~RSnM*Lcl|Ivmf&_3umJ0E1`cFHZR3IK;pg&$9KzCUBG`?04z>@Eh zO&%gPf-H*qu^|!ygG*7NaACXODipihMvb3|WC2cOvQvL_?9NlU^K1#1T6=%7~Z)a9SM? ztB2$2w)&AG(Tzl4dJu#XfoKFk=+=MQ>;8kK%lgMe_qn41Gq521_I5AAM+dBE?E~|I z(RRNEJ%3@ec%Fpwig9CPMdo;?w!AaO&NjF(aZ<4m0~f;Y(qg-hLClGDtvEm=znDDM zctKnajy1T@vrJF$vns!5M?8)OH#~MPKMiPYSxNBP1M;kDoU=52oIw_)pB`sNw!+i= zD2Uud0N)fn^G>_HURYwgzg&iT-Cmy`XSc-|T_0y>vT*j_r11g%L#{}CV0^IuGA6hx auvV+&k)~kr`s)*n^--DwbKjkI=l=r^Vp}T! delta 16606 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