zeroc-ice 3.6.3 → 3.6.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (661) hide show
  1. checksums.yaml +4 -4
  2. data/ICE_LICENSE +1 -1
  3. data/bin/slice2rb +1 -1
  4. data/ext/Communicator.cpp +1 -1
  5. data/ext/Communicator.h +1 -1
  6. data/ext/Config.h +1 -1
  7. data/ext/Connection.cpp +1 -1
  8. data/ext/Connection.h +1 -1
  9. data/ext/Endpoint.cpp +1 -1
  10. data/ext/Endpoint.h +1 -1
  11. data/ext/ImplicitContext.cpp +1 -1
  12. data/ext/ImplicitContext.h +1 -1
  13. data/ext/Init.cpp +1 -1
  14. data/ext/Logger.cpp +1 -1
  15. data/ext/Logger.h +1 -1
  16. data/ext/ObjectFactory.cpp +1 -1
  17. data/ext/ObjectFactory.h +1 -1
  18. data/ext/Operation.cpp +1 -1
  19. data/ext/Operation.h +1 -1
  20. data/ext/Properties.cpp +1 -1
  21. data/ext/Properties.h +1 -1
  22. data/ext/Proxy.cpp +1 -1
  23. data/ext/Proxy.h +1 -1
  24. data/ext/Slice.cpp +1 -1
  25. data/ext/Slice.h +1 -1
  26. data/ext/Types.cpp +1 -1
  27. data/ext/Types.h +1 -1
  28. data/ext/Util.cpp +1 -1
  29. data/ext/Util.h +1 -1
  30. data/ext/extconf.rb +10 -29
  31. data/ext/ice/cpp/include/Ice/ACMF.h +1 -1
  32. data/ext/ice/cpp/include/Ice/Application.h +1 -1
  33. data/ext/ice/cpp/include/Ice/AsyncResult.h +1 -1
  34. data/ext/ice/cpp/include/Ice/AsyncResultF.h +1 -1
  35. data/ext/ice/cpp/include/Ice/BasicStream.h +16 -7
  36. data/ext/ice/cpp/include/Ice/BatchRequestInterceptor.h +1 -1
  37. data/ext/ice/cpp/include/Ice/BatchRequestQueueF.h +1 -1
  38. data/ext/ice/cpp/include/Ice/Buffer.h +1 -1
  39. data/ext/ice/cpp/include/Ice/BuiltinSequences.h +3 -3
  40. data/ext/ice/cpp/include/Ice/Communicator.h +3 -3
  41. data/ext/ice/cpp/include/Ice/CommunicatorAsync.h +1 -1
  42. data/ext/ice/cpp/include/Ice/CommunicatorF.h +3 -3
  43. data/ext/ice/cpp/include/Ice/Config.h +1 -2
  44. data/ext/ice/cpp/include/Ice/Connection.h +3 -3
  45. data/ext/ice/cpp/include/Ice/ConnectionAsync.h +1 -1
  46. data/ext/ice/cpp/include/Ice/ConnectionF.h +3 -3
  47. data/ext/ice/cpp/include/Ice/ConnectionFactoryF.h +1 -1
  48. data/ext/ice/cpp/include/Ice/ConnectionIF.h +1 -1
  49. data/ext/ice/cpp/include/Ice/Current.h +3 -3
  50. data/ext/ice/cpp/include/Ice/DefaultObjectFactory.h +1 -1
  51. data/ext/ice/cpp/include/Ice/DeprecatedStringConverter.h +1 -1
  52. data/ext/ice/cpp/include/Ice/DispatchInterceptor.h +1 -1
  53. data/ext/ice/cpp/include/Ice/Dispatcher.h +1 -1
  54. data/ext/ice/cpp/include/Ice/DynamicLibrary.h +1 -1
  55. data/ext/ice/cpp/include/Ice/DynamicLibraryF.h +1 -1
  56. data/ext/ice/cpp/include/Ice/Endpoint.h +3 -3
  57. data/ext/ice/cpp/include/Ice/EndpointF.h +3 -3
  58. data/ext/ice/cpp/include/Ice/EndpointTypes.h +3 -3
  59. data/ext/ice/cpp/include/Ice/Exception.h +1 -1
  60. data/ext/ice/cpp/include/Ice/FacetMap.h +3 -3
  61. data/ext/ice/cpp/include/Ice/FactoryTable.h +1 -1
  62. data/ext/ice/cpp/include/Ice/FactoryTableInit.h +1 -1
  63. data/ext/ice/cpp/include/Ice/Format.h +1 -1
  64. data/ext/ice/cpp/include/Ice/Functional.h +1 -1
  65. data/ext/ice/cpp/include/Ice/GCObject.h +1 -1
  66. data/ext/ice/cpp/include/Ice/Handle.h +1 -1
  67. data/ext/ice/cpp/include/Ice/Ice.h +1 -1
  68. data/ext/ice/cpp/include/Ice/Identity.h +3 -3
  69. data/ext/ice/cpp/include/Ice/ImplicitContext.h +3 -3
  70. data/ext/ice/cpp/include/Ice/ImplicitContextF.h +3 -3
  71. data/ext/ice/cpp/include/Ice/Incoming.h +1 -1
  72. data/ext/ice/cpp/include/Ice/IncomingAsync.h +1 -1
  73. data/ext/ice/cpp/include/Ice/IncomingAsyncF.h +1 -1
  74. data/ext/ice/cpp/include/Ice/Initialize.h +1 -1
  75. data/ext/ice/cpp/include/Ice/InstanceF.h +1 -1
  76. data/ext/ice/cpp/include/Ice/Instrumentation.h +3 -3
  77. data/ext/ice/cpp/include/Ice/InstrumentationF.h +3 -3
  78. data/ext/ice/cpp/include/Ice/LocalException.h +3 -3
  79. data/ext/ice/cpp/include/Ice/LocalObject.h +1 -1
  80. data/ext/ice/cpp/include/Ice/LocalObjectF.h +1 -1
  81. data/ext/ice/cpp/include/Ice/Locator.h +3 -3
  82. data/ext/ice/cpp/include/Ice/LocatorF.h +3 -3
  83. data/ext/ice/cpp/include/Ice/Logger.h +3 -3
  84. data/ext/ice/cpp/include/Ice/LoggerF.h +3 -3
  85. data/ext/ice/cpp/include/Ice/LoggerUtil.h +1 -1
  86. data/ext/ice/cpp/include/Ice/Metrics.h +3 -3
  87. data/ext/ice/cpp/include/Ice/MetricsAdminI.h +1 -1
  88. data/ext/ice/cpp/include/Ice/MetricsFunctional.h +1 -1
  89. data/ext/ice/cpp/include/Ice/MetricsObserverI.h +1 -1
  90. data/ext/ice/cpp/include/Ice/NativePropertiesAdmin.h +1 -1
  91. data/ext/ice/cpp/include/Ice/Object.h +1 -1
  92. data/ext/ice/cpp/include/Ice/ObjectAdapter.h +3 -3
  93. data/ext/ice/cpp/include/Ice/ObjectAdapterF.h +3 -3
  94. data/ext/ice/cpp/include/Ice/ObjectAdapterFactoryF.h +1 -1
  95. data/ext/ice/cpp/include/Ice/ObjectF.h +1 -1
  96. data/ext/ice/cpp/include/Ice/ObjectFactory.h +3 -3
  97. data/ext/ice/cpp/include/Ice/ObjectFactoryF.h +3 -3
  98. data/ext/ice/cpp/include/Ice/ObjectFactoryManagerF.h +1 -1
  99. data/ext/ice/cpp/include/Ice/ObserverHelper.h +1 -1
  100. data/ext/ice/cpp/include/Ice/Outgoing.h +1 -1
  101. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +1 -1
  102. data/ext/ice/cpp/include/Ice/OutgoingAsyncF.h +1 -1
  103. data/ext/ice/cpp/include/Ice/Plugin.h +3 -3
  104. data/ext/ice/cpp/include/Ice/PluginF.h +3 -3
  105. data/ext/ice/cpp/include/Ice/Process.h +3 -3
  106. data/ext/ice/cpp/include/Ice/ProcessF.h +3 -3
  107. data/ext/ice/cpp/include/Ice/Properties.h +3 -3
  108. data/ext/ice/cpp/include/Ice/PropertiesAdmin.h +3 -3
  109. data/ext/ice/cpp/include/Ice/PropertiesF.h +3 -3
  110. data/ext/ice/cpp/include/Ice/Protocol.h +1 -1
  111. data/ext/ice/cpp/include/Ice/Proxy.h +1 -1
  112. data/ext/ice/cpp/include/Ice/ProxyF.h +1 -1
  113. data/ext/ice/cpp/include/Ice/ProxyFactoryF.h +1 -1
  114. data/ext/ice/cpp/include/Ice/ProxyHandle.h +1 -1
  115. data/ext/ice/cpp/include/Ice/ReferenceF.h +1 -1
  116. data/ext/ice/cpp/include/Ice/RegisterPlugins.h +1 -1
  117. data/ext/ice/cpp/include/Ice/RemoteLogger.h +3 -3
  118. data/ext/ice/cpp/include/Ice/RequestHandlerF.h +1 -1
  119. data/ext/ice/cpp/include/Ice/ResponseHandlerF.h +1 -1
  120. data/ext/ice/cpp/include/Ice/Router.h +3 -3
  121. data/ext/ice/cpp/include/Ice/RouterF.h +3 -3
  122. data/ext/ice/cpp/include/Ice/ServantLocator.h +3 -3
  123. data/ext/ice/cpp/include/Ice/ServantLocatorF.h +3 -3
  124. data/ext/ice/cpp/include/Ice/ServantManagerF.h +1 -1
  125. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  126. data/ext/ice/cpp/include/Ice/SliceChecksumDict.h +3 -3
  127. data/ext/ice/cpp/include/Ice/SliceChecksums.h +1 -1
  128. data/ext/ice/cpp/include/Ice/SlicedData.h +1 -1
  129. data/ext/ice/cpp/include/Ice/SlicedDataF.h +1 -1
  130. data/ext/ice/cpp/include/Ice/Stream.h +1 -1
  131. data/ext/ice/cpp/include/Ice/StreamF.h +1 -1
  132. data/ext/ice/cpp/include/Ice/StreamHelpers.h +1 -1
  133. data/ext/ice/cpp/include/Ice/ThreadPoolF.h +1 -1
  134. data/ext/ice/cpp/include/Ice/UserExceptionFactory.h +1 -1
  135. data/ext/ice/cpp/include/Ice/Version.h +3 -3
  136. data/ext/ice/cpp/include/IceSSL/Config.h +1 -1
  137. data/ext/ice/cpp/include/IceSSL/ConnectionInfo.h +3 -3
  138. data/ext/ice/cpp/include/IceSSL/EndpointInfo.h +3 -3
  139. data/ext/ice/cpp/include/IceSSL/IceSSL.h +1 -1
  140. data/ext/ice/cpp/include/IceSSL/Plugin.h +1 -8
  141. data/ext/ice/cpp/include/IceUtil/AbstractMutex.h +1 -1
  142. data/ext/ice/cpp/include/IceUtil/Atomic.h +1 -1
  143. data/ext/ice/cpp/include/IceUtil/Cache.h +1 -1
  144. data/ext/ice/cpp/include/IceUtil/Cond.h +1 -1
  145. data/ext/ice/cpp/include/IceUtil/Config.h +4 -6
  146. data/ext/ice/cpp/include/IceUtil/CountDownLatch.h +1 -1
  147. data/ext/ice/cpp/include/IceUtil/CtrlCHandler.h +1 -1
  148. data/ext/ice/cpp/include/IceUtil/DisableWarnings.h +1 -1
  149. data/ext/ice/cpp/include/IceUtil/Exception.h +1 -1
  150. data/ext/ice/cpp/include/IceUtil/Functional.h +1 -1
  151. data/ext/ice/cpp/include/IceUtil/Handle.h +1 -1
  152. data/ext/ice/cpp/include/IceUtil/IceUtil.h +1 -1
  153. data/ext/ice/cpp/include/IceUtil/IconvStringConverter.h +1 -1
  154. data/ext/ice/cpp/include/IceUtil/InputUtil.h +1 -1
  155. data/ext/ice/cpp/include/IceUtil/Iterator.h +1 -1
  156. data/ext/ice/cpp/include/IceUtil/Lock.h +1 -1
  157. data/ext/ice/cpp/include/IceUtil/Monitor.h +1 -1
  158. data/ext/ice/cpp/include/IceUtil/Mutex.h +1 -1
  159. data/ext/ice/cpp/include/IceUtil/MutexProtocol.h +1 -1
  160. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +1 -1
  161. data/ext/ice/cpp/include/IceUtil/MutexPtrTryLock.h +1 -1
  162. data/ext/ice/cpp/include/IceUtil/Optional.h +1 -1
  163. data/ext/ice/cpp/include/IceUtil/Options.h +1 -1
  164. data/ext/ice/cpp/include/IceUtil/OutputUtil.h +1 -1
  165. data/ext/ice/cpp/include/IceUtil/PopDisableWarnings.h +1 -1
  166. data/ext/ice/cpp/include/IceUtil/PushDisableWarnings.h +1 -1
  167. data/ext/ice/cpp/include/IceUtil/Random.h +1 -1
  168. data/ext/ice/cpp/include/IceUtil/RecMutex.h +1 -1
  169. data/ext/ice/cpp/include/IceUtil/SHA1.h +1 -1
  170. data/ext/ice/cpp/include/IceUtil/ScannerConfig.h +1 -1
  171. data/ext/ice/cpp/include/IceUtil/ScopedArray.h +1 -1
  172. data/ext/ice/cpp/include/IceUtil/Shared.h +1 -1
  173. data/ext/ice/cpp/include/IceUtil/StringUtil.h +1 -1
  174. data/ext/ice/cpp/include/IceUtil/Thread.h +1 -1
  175. data/ext/ice/cpp/include/IceUtil/ThreadException.h +1 -1
  176. data/ext/ice/cpp/include/IceUtil/Time.h +1 -1
  177. data/ext/ice/cpp/include/IceUtil/Timer.h +1 -1
  178. data/ext/ice/cpp/include/IceUtil/UUID.h +1 -1
  179. data/ext/ice/cpp/include/IceUtil/UndefSysMacros.h +1 -1
  180. data/ext/ice/cpp/include/IceUtil/UniquePtr.h +1 -1
  181. data/ext/ice/cpp/include/Slice/CPlusPlusUtil.h +1 -1
  182. data/ext/ice/cpp/include/Slice/Checksum.h +1 -1
  183. data/ext/ice/cpp/include/Slice/CsUtil.h +1 -1
  184. data/ext/ice/cpp/include/Slice/DotNetNames.h +1 -1
  185. data/ext/ice/cpp/include/Slice/FileTracker.h +1 -1
  186. data/ext/ice/cpp/include/Slice/JavaUtil.h +1 -1
  187. data/ext/ice/cpp/include/Slice/ObjCUtil.h +1 -1
  188. data/ext/ice/cpp/include/Slice/PHPUtil.h +1 -1
  189. data/ext/ice/cpp/include/Slice/Parser.h +1 -1
  190. data/ext/ice/cpp/include/Slice/Preprocessor.h +1 -1
  191. data/ext/ice/cpp/include/Slice/PythonUtil.h +1 -1
  192. data/ext/ice/cpp/include/Slice/RubyUtil.h +1 -1
  193. data/ext/ice/cpp/include/Slice/Util.h +1 -1
  194. data/ext/ice/cpp/src/Ice/ACM.cpp +46 -20
  195. data/ext/ice/cpp/src/Ice/ACM.h +8 -8
  196. data/ext/ice/cpp/src/Ice/Acceptor.cpp +1 -1
  197. data/ext/ice/cpp/src/Ice/Acceptor.h +1 -1
  198. data/ext/ice/cpp/src/Ice/AcceptorF.h +1 -1
  199. data/ext/ice/cpp/src/Ice/AsyncResult.cpp +1 -1
  200. data/ext/ice/cpp/src/Ice/Base64.cpp +1 -1
  201. data/ext/ice/cpp/src/Ice/Base64.h +1 -1
  202. data/ext/ice/cpp/src/Ice/BasicStream.cpp +38 -5
  203. data/ext/ice/cpp/src/Ice/BatchRequestQueue.cpp +1 -1
  204. data/ext/ice/cpp/src/Ice/BatchRequestQueue.h +1 -1
  205. data/ext/ice/cpp/src/Ice/Buffer.cpp +1 -1
  206. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +3 -3
  207. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +1 -1
  208. data/ext/ice/cpp/src/Ice/CollocatedRequestHandler.h +1 -1
  209. data/ext/ice/cpp/src/Ice/Communicator.cpp +3 -3
  210. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +3 -3
  211. data/ext/ice/cpp/src/Ice/CommunicatorI.cpp +1 -1
  212. data/ext/ice/cpp/src/Ice/CommunicatorI.h +1 -1
  213. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.cpp +30 -18
  214. data/ext/ice/cpp/src/Ice/ConnectRequestHandler.h +1 -1
  215. data/ext/ice/cpp/src/Ice/ConnectRequestHandlerF.h +1 -1
  216. data/ext/ice/cpp/src/Ice/Connection.cpp +3 -3
  217. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +3 -3
  218. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +13 -3
  219. data/ext/ice/cpp/src/Ice/ConnectionFactory.h +1 -1
  220. data/ext/ice/cpp/src/Ice/ConnectionI.cpp +1 -1
  221. data/ext/ice/cpp/src/Ice/ConnectionI.h +1 -1
  222. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.cpp +1 -1
  223. data/ext/ice/cpp/src/Ice/ConnectionRequestHandler.h +1 -1
  224. data/ext/ice/cpp/src/Ice/Connector.cpp +1 -1
  225. data/ext/ice/cpp/src/Ice/Connector.h +1 -1
  226. data/ext/ice/cpp/src/Ice/ConnectorF.h +1 -1
  227. data/ext/ice/cpp/src/Ice/Current.cpp +3 -3
  228. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.cpp +1 -1
  229. data/ext/ice/cpp/src/Ice/DefaultsAndOverrides.h +1 -1
  230. data/ext/ice/cpp/src/Ice/DefaultsAndOverridesF.h +1 -1
  231. data/ext/ice/cpp/src/Ice/DeprecatedStringConverter.cpp +1 -1
  232. data/ext/ice/cpp/src/Ice/DispatchInterceptor.cpp +1 -1
  233. data/ext/ice/cpp/src/Ice/DynamicLibrary.cpp +3 -3
  234. data/ext/ice/cpp/src/Ice/Endpoint.cpp +3 -3
  235. data/ext/ice/cpp/src/Ice/EndpointF.cpp +3 -3
  236. data/ext/ice/cpp/src/Ice/EndpointFactory.cpp +1 -1
  237. data/ext/ice/cpp/src/Ice/EndpointFactory.h +1 -1
  238. data/ext/ice/cpp/src/Ice/EndpointFactoryF.h +1 -1
  239. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.cpp +1 -1
  240. data/ext/ice/cpp/src/Ice/EndpointFactoryManager.h +1 -1
  241. data/ext/ice/cpp/src/Ice/EndpointFactoryManagerF.h +1 -1
  242. data/ext/ice/cpp/src/Ice/EndpointI.cpp +1 -1
  243. data/ext/ice/cpp/src/Ice/EndpointI.h +1 -1
  244. data/ext/ice/cpp/src/Ice/EndpointIF.h +1 -1
  245. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +3 -3
  246. data/ext/ice/cpp/src/Ice/EventHandler.cpp +1 -1
  247. data/ext/ice/cpp/src/Ice/EventHandler.h +1 -1
  248. data/ext/ice/cpp/src/Ice/EventHandlerF.h +1 -1
  249. data/ext/ice/cpp/src/Ice/Exception.cpp +1 -1
  250. data/ext/ice/cpp/src/Ice/FacetMap.cpp +3 -3
  251. data/ext/ice/cpp/src/Ice/FactoryTable.cpp +1 -1
  252. data/ext/ice/cpp/src/Ice/FactoryTableInit.cpp +1 -1
  253. data/ext/ice/cpp/src/Ice/GCObject.cpp +1 -1
  254. data/ext/ice/cpp/src/Ice/HashUtil.h +1 -1
  255. data/ext/ice/cpp/src/Ice/HttpParser.cpp +1 -1
  256. data/ext/ice/cpp/src/Ice/HttpParser.h +1 -1
  257. data/ext/ice/cpp/src/Ice/IPEndpointI.cpp +1 -1
  258. data/ext/ice/cpp/src/Ice/IPEndpointI.h +1 -1
  259. data/ext/ice/cpp/src/Ice/IPEndpointIF.h +1 -1
  260. data/ext/ice/cpp/src/Ice/Identity.cpp +3 -3
  261. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +3 -3
  262. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +3 -3
  263. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +68 -35
  264. data/ext/ice/cpp/src/Ice/ImplicitContextI.h +1 -1
  265. data/ext/ice/cpp/src/Ice/Incoming.cpp +1 -1
  266. data/ext/ice/cpp/src/Ice/IncomingAsync.cpp +1 -1
  267. data/ext/ice/cpp/src/Ice/IncomingRequest.h +1 -1
  268. data/ext/ice/cpp/src/Ice/Initialize.cpp +1 -1
  269. data/ext/ice/cpp/src/Ice/Instance.cpp +34 -19
  270. data/ext/ice/cpp/src/Ice/Instance.h +3 -1
  271. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +3 -3
  272. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +3 -3
  273. data/ext/ice/cpp/src/Ice/InstrumentationI.cpp +1 -1
  274. data/ext/ice/cpp/src/Ice/InstrumentationI.h +1 -1
  275. data/ext/ice/cpp/src/Ice/LocalException.cpp +3 -3
  276. data/ext/ice/cpp/src/Ice/LocalObject.cpp +1 -1
  277. data/ext/ice/cpp/src/Ice/Locator.cpp +3 -3
  278. data/ext/ice/cpp/src/Ice/LocatorF.cpp +3 -3
  279. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +1 -1
  280. data/ext/ice/cpp/src/Ice/LocatorInfo.h +1 -1
  281. data/ext/ice/cpp/src/Ice/LocatorInfoF.h +1 -1
  282. data/ext/ice/cpp/src/Ice/Logger.cpp +3 -3
  283. data/ext/ice/cpp/src/Ice/LoggerAdminI.cpp +1 -1
  284. data/ext/ice/cpp/src/Ice/LoggerAdminI.h +1 -1
  285. data/ext/ice/cpp/src/Ice/LoggerF.cpp +3 -3
  286. data/ext/ice/cpp/src/Ice/LoggerI.cpp +1 -1
  287. data/ext/ice/cpp/src/Ice/LoggerI.h +1 -1
  288. data/ext/ice/cpp/src/Ice/LoggerUtil.cpp +1 -1
  289. data/ext/ice/cpp/src/Ice/Metrics.cpp +3 -3
  290. data/ext/ice/cpp/src/Ice/MetricsAdminI.cpp +1 -1
  291. data/ext/ice/cpp/src/Ice/MetricsObserverI.cpp +1 -1
  292. data/ext/ice/cpp/src/Ice/Network.cpp +4 -28
  293. data/ext/ice/cpp/src/Ice/Network.h +1 -1
  294. data/ext/ice/cpp/src/Ice/NetworkF.h +1 -1
  295. data/ext/ice/cpp/src/Ice/NetworkProxy.cpp +1 -1
  296. data/ext/ice/cpp/src/Ice/NetworkProxy.h +1 -1
  297. data/ext/ice/cpp/src/Ice/NetworkProxyF.h +1 -1
  298. data/ext/ice/cpp/src/Ice/Object.cpp +1 -1
  299. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +3 -3
  300. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +3 -3
  301. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +1 -1
  302. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.h +1 -1
  303. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +1 -1
  304. data/ext/ice/cpp/src/Ice/ObjectAdapterI.h +1 -1
  305. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +3 -3
  306. data/ext/ice/cpp/src/Ice/ObjectFactoryF.cpp +3 -3
  307. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.cpp +1 -1
  308. data/ext/ice/cpp/src/Ice/ObjectFactoryManager.h +1 -1
  309. data/ext/ice/cpp/src/Ice/ObserverHelper.cpp +1 -1
  310. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.cpp +1 -1
  311. data/ext/ice/cpp/src/Ice/OpaqueEndpointI.h +1 -1
  312. data/ext/ice/cpp/src/Ice/Outgoing.cpp +8 -5
  313. data/ext/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
  314. data/ext/ice/cpp/src/Ice/Plugin.cpp +3 -3
  315. data/ext/ice/cpp/src/Ice/PluginF.cpp +3 -3
  316. data/ext/ice/cpp/src/Ice/PluginManagerI.cpp +1 -1
  317. data/ext/ice/cpp/src/Ice/PluginManagerI.h +1 -1
  318. data/ext/ice/cpp/src/Ice/Process.cpp +3 -3
  319. data/ext/ice/cpp/src/Ice/ProcessF.cpp +3 -3
  320. data/ext/ice/cpp/src/Ice/Properties.cpp +3 -3
  321. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +3 -3
  322. data/ext/ice/cpp/src/Ice/PropertiesAdminI.cpp +1 -1
  323. data/ext/ice/cpp/src/Ice/PropertiesAdminI.h +1 -1
  324. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +3 -3
  325. data/ext/ice/cpp/src/Ice/PropertiesI.cpp +1 -1
  326. data/ext/ice/cpp/src/Ice/PropertiesI.h +1 -1
  327. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +104 -106
  328. data/ext/ice/cpp/src/Ice/PropertyNames.h +3 -3
  329. data/ext/ice/cpp/src/Ice/Protocol.cpp +1 -1
  330. data/ext/ice/cpp/src/Ice/ProtocolInstance.cpp +1 -1
  331. data/ext/ice/cpp/src/Ice/ProtocolInstance.h +1 -1
  332. data/ext/ice/cpp/src/Ice/ProtocolInstanceF.h +1 -1
  333. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.cpp +1 -1
  334. data/ext/ice/cpp/src/Ice/ProtocolPluginFacade.h +1 -1
  335. data/ext/ice/cpp/src/Ice/ProtocolPluginFacadeF.h +1 -1
  336. data/ext/ice/cpp/src/Ice/Proxy.cpp +1 -1
  337. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +1 -1
  338. data/ext/ice/cpp/src/Ice/ProxyFactory.h +1 -1
  339. data/ext/ice/cpp/src/Ice/Reference.cpp +1 -1
  340. data/ext/ice/cpp/src/Ice/Reference.h +1 -1
  341. data/ext/ice/cpp/src/Ice/ReferenceFactory.cpp +1 -1
  342. data/ext/ice/cpp/src/Ice/ReferenceFactory.h +1 -1
  343. data/ext/ice/cpp/src/Ice/ReferenceFactoryF.h +1 -1
  344. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.cpp +1 -1
  345. data/ext/ice/cpp/src/Ice/RegisterPluginsInit.h +1 -1
  346. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +3 -3
  347. data/ext/ice/cpp/src/Ice/ReplyStatus.h +1 -1
  348. data/ext/ice/cpp/src/Ice/RequestHandler.cpp +1 -1
  349. data/ext/ice/cpp/src/Ice/RequestHandler.h +1 -1
  350. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.cpp +1 -1
  351. data/ext/ice/cpp/src/Ice/RequestHandlerFactory.h +1 -1
  352. data/ext/ice/cpp/src/Ice/ResponseHandler.cpp +1 -1
  353. data/ext/ice/cpp/src/Ice/ResponseHandler.h +1 -1
  354. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +1 -1
  355. data/ext/ice/cpp/src/Ice/RetryQueue.h +1 -1
  356. data/ext/ice/cpp/src/Ice/RetryQueueF.h +1 -1
  357. data/ext/ice/cpp/src/Ice/Router.cpp +3 -3
  358. data/ext/ice/cpp/src/Ice/RouterF.cpp +3 -3
  359. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +1 -1
  360. data/ext/ice/cpp/src/Ice/RouterInfo.h +1 -1
  361. data/ext/ice/cpp/src/Ice/RouterInfoF.h +1 -1
  362. data/ext/ice/cpp/src/Ice/Selector.cpp +35 -2
  363. data/ext/ice/cpp/src/Ice/Selector.h +1 -1
  364. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +3 -3
  365. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +3 -3
  366. data/ext/ice/cpp/src/Ice/ServantManager.cpp +1 -1
  367. data/ext/ice/cpp/src/Ice/ServantManager.h +1 -1
  368. data/ext/ice/cpp/src/Ice/SharedContext.h +1 -1
  369. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +3 -3
  370. data/ext/ice/cpp/src/Ice/SliceChecksums.cpp +1 -1
  371. data/ext/ice/cpp/src/Ice/SlicedData.cpp +1 -1
  372. data/ext/ice/cpp/src/Ice/Stream.cpp +1 -1
  373. data/ext/ice/cpp/src/Ice/StreamI.cpp +1 -1
  374. data/ext/ice/cpp/src/Ice/StreamI.h +1 -1
  375. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +1 -1
  376. data/ext/ice/cpp/src/Ice/StreamSocket.h +1 -1
  377. data/ext/ice/cpp/src/Ice/StringConverterPlugin.cpp +1 -1
  378. data/ext/ice/cpp/src/Ice/SysLoggerI.cpp +1 -1
  379. data/ext/ice/cpp/src/Ice/SysLoggerI.h +1 -1
  380. data/ext/ice/cpp/src/Ice/TcpAcceptor.cpp +1 -1
  381. data/ext/ice/cpp/src/Ice/TcpAcceptor.h +1 -1
  382. data/ext/ice/cpp/src/Ice/TcpConnector.cpp +1 -1
  383. data/ext/ice/cpp/src/Ice/TcpConnector.h +1 -1
  384. data/ext/ice/cpp/src/Ice/TcpEndpointI.cpp +1 -1
  385. data/ext/ice/cpp/src/Ice/TcpEndpointI.h +1 -1
  386. data/ext/ice/cpp/src/Ice/TcpTransceiver.cpp +1 -1
  387. data/ext/ice/cpp/src/Ice/TcpTransceiver.h +1 -1
  388. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +1 -1
  389. data/ext/ice/cpp/src/Ice/ThreadPool.h +1 -1
  390. data/ext/ice/cpp/src/Ice/TraceLevels.cpp +1 -1
  391. data/ext/ice/cpp/src/Ice/TraceLevels.h +1 -1
  392. data/ext/ice/cpp/src/Ice/TraceLevelsF.h +1 -1
  393. data/ext/ice/cpp/src/Ice/TraceUtil.cpp +1 -1
  394. data/ext/ice/cpp/src/Ice/TraceUtil.h +1 -1
  395. data/ext/ice/cpp/src/Ice/Transceiver.cpp +1 -1
  396. data/ext/ice/cpp/src/Ice/Transceiver.h +1 -1
  397. data/ext/ice/cpp/src/Ice/TransceiverF.h +1 -1
  398. data/ext/ice/cpp/src/Ice/UdpConnector.cpp +1 -1
  399. data/ext/ice/cpp/src/Ice/UdpConnector.h +1 -1
  400. data/ext/ice/cpp/src/Ice/UdpEndpointI.cpp +1 -1
  401. data/ext/ice/cpp/src/Ice/UdpEndpointI.h +1 -1
  402. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +2 -2
  403. data/ext/ice/cpp/src/Ice/UdpTransceiver.h +1 -1
  404. data/ext/ice/cpp/src/Ice/Version.cpp +3 -3
  405. data/ext/ice/cpp/src/Ice/WSAcceptor.cpp +1 -1
  406. data/ext/ice/cpp/src/Ice/WSAcceptor.h +1 -1
  407. data/ext/ice/cpp/src/Ice/WSConnector.cpp +1 -1
  408. data/ext/ice/cpp/src/Ice/WSConnector.h +1 -1
  409. data/ext/ice/cpp/src/Ice/WSEndpoint.cpp +1 -1
  410. data/ext/ice/cpp/src/Ice/WSEndpoint.h +1 -1
  411. data/ext/ice/cpp/src/Ice/WSTransceiver.cpp +1 -1
  412. data/ext/ice/cpp/src/Ice/WSTransceiver.h +1 -1
  413. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +3 -3
  414. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +3 -3
  415. data/ext/ice/cpp/src/IceDiscovery/LocatorI.cpp +1 -1
  416. data/ext/ice/cpp/src/IceDiscovery/LocatorI.h +1 -1
  417. data/ext/ice/cpp/src/IceDiscovery/LookupI.cpp +37 -26
  418. data/ext/ice/cpp/src/IceDiscovery/LookupI.h +11 -8
  419. data/ext/ice/cpp/src/IceDiscovery/PluginI.cpp +16 -5
  420. data/ext/ice/cpp/src/IceDiscovery/PluginI.h +4 -2
  421. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +3 -3
  422. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +3 -3
  423. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +65 -40
  424. data/ext/ice/cpp/src/IceSSL/AcceptorI.cpp +1 -1
  425. data/ext/ice/cpp/src/IceSSL/AcceptorI.h +1 -1
  426. data/ext/ice/cpp/src/IceSSL/Certificate.cpp +1 -1
  427. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +3 -3
  428. data/ext/ice/cpp/src/IceSSL/ConnectorI.cpp +1 -1
  429. data/ext/ice/cpp/src/IceSSL/ConnectorI.h +1 -1
  430. data/ext/ice/cpp/src/IceSSL/EndpointI.cpp +1 -1
  431. data/ext/ice/cpp/src/IceSSL/EndpointI.h +1 -1
  432. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +3 -3
  433. data/ext/ice/cpp/src/IceSSL/Instance.cpp +1 -1
  434. data/ext/ice/cpp/src/IceSSL/Instance.h +1 -1
  435. data/ext/ice/cpp/src/IceSSL/InstanceF.h +1 -1
  436. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +11 -11
  437. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +66 -88
  438. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +1 -1
  439. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +1 -1
  440. data/ext/ice/cpp/src/IceSSL/PluginI.h +1 -1
  441. data/ext/ice/cpp/src/IceSSL/RFC2253.cpp +1 -1
  442. data/ext/ice/cpp/src/IceSSL/RFC2253.h +1 -1
  443. data/ext/ice/cpp/src/IceSSL/SChannelEngine.cpp +1 -1
  444. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +2 -4
  445. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +1 -1
  446. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +1 -1
  447. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +1 -1
  448. data/ext/ice/cpp/src/IceSSL/SSLEngineF.h +1 -1
  449. data/ext/ice/cpp/src/IceSSL/SecureTransportEngine.cpp +1 -1
  450. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +2 -2
  451. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +1 -1
  452. data/ext/ice/cpp/src/IceSSL/TrustManager.cpp +1 -1
  453. data/ext/ice/cpp/src/IceSSL/TrustManager.h +1 -1
  454. data/ext/ice/cpp/src/IceSSL/TrustManagerF.h +1 -1
  455. data/ext/ice/cpp/src/IceSSL/Util.cpp +5 -5
  456. data/ext/ice/cpp/src/IceSSL/Util.h +1 -1
  457. data/ext/ice/cpp/src/IceUtil/ArgVector.cpp +1 -1
  458. data/ext/ice/cpp/src/IceUtil/ArgVector.h +1 -1
  459. data/ext/ice/cpp/src/IceUtil/Cond.cpp +2 -2
  460. data/ext/ice/cpp/src/IceUtil/ConvertUTF.cpp +1 -1
  461. data/ext/ice/cpp/src/IceUtil/ConvertUTF.h +1 -1
  462. data/ext/ice/cpp/src/IceUtil/CountDownLatch.cpp +11 -11
  463. data/ext/ice/cpp/src/IceUtil/CtrlCHandler.cpp +1 -1
  464. data/ext/ice/cpp/src/IceUtil/Exception.cpp +1 -1
  465. data/ext/ice/cpp/src/IceUtil/FileUtil.cpp +1 -1
  466. data/ext/ice/cpp/src/IceUtil/FileUtil.h +1 -1
  467. data/ext/ice/cpp/src/IceUtil/InputUtil.cpp +1 -1
  468. data/ext/ice/cpp/src/IceUtil/MutexProtocol.cpp +1 -1
  469. data/ext/ice/cpp/src/IceUtil/Options.cpp +1 -1
  470. data/ext/ice/cpp/src/IceUtil/OutputUtil.cpp +1 -1
  471. data/ext/ice/cpp/src/IceUtil/Random.cpp +1 -1
  472. data/ext/ice/cpp/src/IceUtil/RecMutex.cpp +1 -1
  473. data/ext/ice/cpp/src/IceUtil/SHA1.cpp +1 -1
  474. data/ext/ice/cpp/src/IceUtil/Shared.cpp +1 -1
  475. data/ext/ice/cpp/src/IceUtil/StopWatch.h +1 -1
  476. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +1 -1
  477. data/ext/ice/cpp/src/IceUtil/StringUtil.cpp +1 -1
  478. data/ext/ice/cpp/src/IceUtil/Thread.cpp +1 -1
  479. data/ext/ice/cpp/src/IceUtil/ThreadException.cpp +1 -1
  480. data/ext/ice/cpp/src/IceUtil/Time.cpp +1 -1
  481. data/ext/ice/cpp/src/IceUtil/Timer.cpp +1 -1
  482. data/ext/ice/cpp/src/IceUtil/UUID.cpp +1 -1
  483. data/ext/ice/cpp/src/IceUtil/Unicode.cpp +1 -1
  484. data/ext/ice/cpp/src/IceUtil/Unicode.h +1 -1
  485. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +2 -2
  486. data/ext/ice/cpp/src/Slice/Checksum.cpp +1 -1
  487. data/ext/ice/cpp/src/Slice/CsUtil.cpp +131 -100
  488. data/ext/ice/cpp/src/Slice/DotNetNames.cpp +1 -1
  489. data/ext/ice/cpp/src/Slice/FileTracker.cpp +1 -1
  490. data/ext/ice/cpp/src/Slice/Grammar.cpp +1 -1
  491. data/ext/ice/cpp/src/Slice/GrammarUtil.h +1 -1
  492. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +2 -2
  493. data/ext/ice/cpp/src/Slice/MD5.cpp +1 -1
  494. data/ext/ice/cpp/src/Slice/MD5.h +1 -1
  495. data/ext/ice/cpp/src/Slice/ObjCUtil.cpp +1 -1
  496. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +1 -1
  497. data/ext/ice/cpp/src/Slice/Parser.cpp +1 -1
  498. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +87 -58
  499. data/ext/ice/cpp/src/Slice/Python.cpp +1 -1
  500. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +2 -2
  501. data/ext/ice/cpp/src/Slice/Ruby.cpp +1 -1
  502. data/ext/ice/cpp/src/Slice/RubyUtil.cpp +4 -7
  503. data/ext/ice/cpp/src/Slice/Scanner.cpp +2 -1
  504. data/ext/ice/cpp/src/Slice/Util.cpp +1 -1
  505. data/ext/ice/mcpp/Makefile +31 -42
  506. data/ext/ice/mcpp/README.md +7 -11
  507. data/ext/ice/mcpp/mcpp.gyp +21 -1
  508. data/ice.gemspec +6 -4
  509. data/lib/Glacier2.rb +1 -1
  510. data/lib/Glacier2/Metrics.rb +2 -2
  511. data/lib/Glacier2/PermissionsVerifier.rb +2 -2
  512. data/lib/Glacier2/PermissionsVerifierF.rb +2 -2
  513. data/lib/Glacier2/Router.rb +2 -2
  514. data/lib/Glacier2/RouterF.rb +2 -2
  515. data/lib/Glacier2/SSLInfo.rb +3 -3
  516. data/lib/Glacier2/Session.rb +2 -2
  517. data/lib/Ice.rb +18 -31
  518. data/lib/Ice/BuiltinSequences.rb +2 -2
  519. data/lib/Ice/Communicator.rb +2 -2
  520. data/lib/Ice/CommunicatorF.rb +2 -2
  521. data/lib/Ice/Connection.rb +3 -3
  522. data/lib/Ice/ConnectionF.rb +2 -2
  523. data/lib/Ice/Current.rb +3 -3
  524. data/lib/Ice/Endpoint.rb +2 -2
  525. data/lib/Ice/EndpointF.rb +2 -2
  526. data/lib/Ice/EndpointTypes.rb +2 -2
  527. data/lib/Ice/FacetMap.rb +2 -2
  528. data/lib/Ice/Identity.rb +3 -3
  529. data/lib/Ice/ImplicitContext.rb +2 -2
  530. data/lib/Ice/ImplicitContextF.rb +2 -2
  531. data/lib/Ice/Instrumentation.rb +2 -2
  532. data/lib/Ice/InstrumentationF.rb +2 -2
  533. data/lib/Ice/LocalException.rb +2 -2
  534. data/lib/Ice/Locator.rb +2 -2
  535. data/lib/Ice/LocatorF.rb +2 -2
  536. data/lib/Ice/Logger.rb +2 -2
  537. data/lib/Ice/LoggerF.rb +2 -2
  538. data/lib/Ice/Metrics.rb +3 -3
  539. data/lib/Ice/ObjectAdapterF.rb +2 -2
  540. data/lib/Ice/ObjectFactory.rb +2 -2
  541. data/lib/Ice/ObjectFactoryF.rb +2 -2
  542. data/lib/Ice/Plugin.rb +2 -2
  543. data/lib/Ice/PluginF.rb +2 -2
  544. data/lib/Ice/Process.rb +2 -2
  545. data/lib/Ice/ProcessF.rb +2 -2
  546. data/lib/Ice/Properties.rb +2 -2
  547. data/lib/Ice/PropertiesAdmin.rb +2 -2
  548. data/lib/Ice/PropertiesF.rb +2 -2
  549. data/lib/Ice/RemoteLogger.rb +3 -3
  550. data/lib/Ice/Router.rb +2 -2
  551. data/lib/Ice/RouterF.rb +2 -2
  552. data/lib/Ice/SliceChecksumDict.rb +2 -2
  553. data/lib/Ice/Version.rb +4 -4
  554. data/lib/IceBox.rb +1 -1
  555. data/lib/IceBox/IceBox.rb +2 -2
  556. data/lib/IceGrid.rb +1 -1
  557. data/lib/IceGrid/Admin.rb +10 -10
  558. data/lib/IceGrid/Descriptor.rb +16 -16
  559. data/lib/IceGrid/Exception.rb +2 -2
  560. data/lib/IceGrid/FileParser.rb +2 -2
  561. data/lib/IceGrid/Locator.rb +2 -2
  562. data/lib/IceGrid/Observer.rb +5 -5
  563. data/lib/IceGrid/Query.rb +2 -2
  564. data/lib/IceGrid/Registry.rb +2 -2
  565. data/lib/IceGrid/Session.rb +2 -2
  566. data/lib/IceGrid/UserAccountMapper.rb +2 -2
  567. data/lib/IcePatch2.rb +1 -1
  568. data/lib/IcePatch2/FileInfo.rb +4 -4
  569. data/lib/IcePatch2/FileServer.rb +2 -2
  570. data/lib/IceStorm.rb +1 -1
  571. data/lib/IceStorm/IceStorm.rb +3 -3
  572. data/lib/IceStorm/Metrics.rb +2 -2
  573. data/slice/Freeze/BackgroundSaveEvictor.ice +1 -1
  574. data/slice/Freeze/CatalogData.ice +1 -1
  575. data/slice/Freeze/Connection.ice +1 -1
  576. data/slice/Freeze/ConnectionF.ice +1 -1
  577. data/slice/Freeze/DB.ice +1 -1
  578. data/slice/Freeze/Evictor.ice +1 -1
  579. data/slice/Freeze/EvictorF.ice +1 -1
  580. data/slice/Freeze/EvictorStorage.ice +1 -1
  581. data/slice/Freeze/Exception.ice +1 -1
  582. data/slice/Freeze/Transaction.ice +1 -1
  583. data/slice/Freeze/TransactionalEvictor.ice +1 -1
  584. data/slice/Glacier2/Metrics.ice +1 -1
  585. data/slice/Glacier2/PermissionsVerifier.ice +1 -1
  586. data/slice/Glacier2/PermissionsVerifierF.ice +1 -1
  587. data/slice/Glacier2/Router.ice +1 -1
  588. data/slice/Glacier2/RouterF.ice +1 -1
  589. data/slice/Glacier2/SSLInfo.ice +1 -1
  590. data/slice/Glacier2/Session.ice +1 -1
  591. data/slice/Ice/BuiltinSequences.ice +1 -1
  592. data/slice/Ice/Communicator.ice +1 -1
  593. data/slice/Ice/CommunicatorF.ice +1 -1
  594. data/slice/Ice/Connection.ice +1 -1
  595. data/slice/Ice/ConnectionF.ice +1 -1
  596. data/slice/Ice/Current.ice +1 -1
  597. data/slice/Ice/Endpoint.ice +1 -1
  598. data/slice/Ice/EndpointF.ice +1 -1
  599. data/slice/Ice/EndpointTypes.ice +1 -1
  600. data/slice/Ice/FacetMap.ice +1 -1
  601. data/slice/Ice/Identity.ice +1 -1
  602. data/slice/Ice/ImplicitContext.ice +1 -1
  603. data/slice/Ice/ImplicitContextF.ice +1 -1
  604. data/slice/Ice/Instrumentation.ice +1 -1
  605. data/slice/Ice/InstrumentationF.ice +1 -1
  606. data/slice/Ice/LocalException.ice +1 -1
  607. data/slice/Ice/Locator.ice +1 -1
  608. data/slice/Ice/LocatorF.ice +1 -1
  609. data/slice/Ice/Logger.ice +1 -1
  610. data/slice/Ice/LoggerF.ice +1 -1
  611. data/slice/Ice/Metrics.ice +1 -1
  612. data/slice/Ice/ObjectAdapter.ice +1 -1
  613. data/slice/Ice/ObjectAdapterF.ice +1 -1
  614. data/slice/Ice/ObjectFactory.ice +1 -1
  615. data/slice/Ice/ObjectFactoryF.ice +1 -1
  616. data/slice/Ice/Plugin.ice +1 -1
  617. data/slice/Ice/PluginF.ice +1 -1
  618. data/slice/Ice/Process.ice +1 -1
  619. data/slice/Ice/ProcessF.ice +1 -1
  620. data/slice/Ice/Properties.ice +1 -1
  621. data/slice/Ice/PropertiesAdmin.ice +1 -1
  622. data/slice/Ice/PropertiesF.ice +1 -1
  623. data/slice/Ice/RemoteLogger.ice +1 -1
  624. data/slice/Ice/Router.ice +1 -1
  625. data/slice/Ice/RouterF.ice +1 -1
  626. data/slice/Ice/ServantLocator.ice +1 -1
  627. data/slice/Ice/ServantLocatorF.ice +1 -1
  628. data/slice/Ice/SliceChecksumDict.ice +1 -1
  629. data/slice/Ice/Version.ice +1 -1
  630. data/slice/IceBox/IceBox.ice +1 -1
  631. data/slice/IceDiscovery/IceDiscovery.ice +1 -1
  632. data/slice/IceGrid/Admin.ice +1 -1
  633. data/slice/IceGrid/Descriptor.ice +1 -1
  634. data/slice/IceGrid/Exception.ice +1 -1
  635. data/slice/IceGrid/FileParser.ice +1 -1
  636. data/slice/IceGrid/Locator.ice +1 -1
  637. data/slice/IceGrid/Observer.ice +1 -1
  638. data/slice/IceGrid/PluginFacade.ice +1 -1
  639. data/slice/IceGrid/Query.ice +1 -1
  640. data/slice/IceGrid/Registry.ice +1 -1
  641. data/slice/IceGrid/Session.ice +1 -1
  642. data/slice/IceGrid/UserAccountMapper.ice +1 -1
  643. data/slice/IceLocatorDiscovery/IceLocatorDiscovery.ice +1 -1
  644. data/slice/IcePatch2/FileInfo.ice +1 -1
  645. data/slice/IcePatch2/FileServer.ice +1 -1
  646. data/slice/IceSSL/ConnectionInfo.ice +1 -1
  647. data/slice/IceSSL/EndpointInfo.ice +1 -1
  648. data/slice/IceStorm/IceStorm.ice +1 -1
  649. data/slice/IceStorm/Metrics.ice +1 -1
  650. metadata +498 -507
  651. data/BZIP2_LICENSE +0 -42
  652. data/ext/ice/bzip2/blocksort.c +0 -1094
  653. data/ext/ice/bzip2/bzlib.c +0 -1572
  654. data/ext/ice/bzip2/bzlib.h +0 -282
  655. data/ext/ice/bzip2/bzlib_private.h +0 -509
  656. data/ext/ice/bzip2/compress.c +0 -672
  657. data/ext/ice/bzip2/crctable.c +0 -104
  658. data/ext/ice/bzip2/decompress.c +0 -646
  659. data/ext/ice/bzip2/huffman.c +0 -205
  660. data/ext/ice/bzip2/randtable.c +0 -84
  661. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.h +0 -36
data/BZIP2_LICENSE DELETED
@@ -1,42 +0,0 @@
1
-
2
- --------------------------------------------------------------------------
3
-
4
- This program, "bzip2", the associated library "libbzip2", and all
5
- documentation, are copyright (C) 1996-2010 Julian R Seward. All
6
- rights reserved.
7
-
8
- Redistribution and use in source and binary forms, with or without
9
- modification, are permitted provided that the following conditions
10
- are met:
11
-
12
- 1. Redistributions of source code must retain the above copyright
13
- notice, this list of conditions and the following disclaimer.
14
-
15
- 2. The origin of this software must not be misrepresented; you must
16
- not claim that you wrote the original software. If you use this
17
- software in a product, an acknowledgment in the product
18
- documentation would be appreciated but is not required.
19
-
20
- 3. Altered source versions must be plainly marked as such, and must
21
- not be misrepresented as being the original software.
22
-
23
- 4. The name of the author may not be used to endorse or promote
24
- products derived from this software without specific prior written
25
- permission.
26
-
27
- THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
28
- OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
29
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
30
- ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
31
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
32
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
33
- GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
35
- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
36
- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
37
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38
-
39
- Julian Seward, jseward@bzip.org
40
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
41
-
42
- --------------------------------------------------------------------------
@@ -1,1094 +0,0 @@
1
-
2
- /*-------------------------------------------------------------*/
3
- /*--- Block sorting machinery ---*/
4
- /*--- blocksort.c ---*/
5
- /*-------------------------------------------------------------*/
6
-
7
- /* ------------------------------------------------------------------
8
- This file is part of bzip2/libbzip2, a program and library for
9
- lossless, block-sorting data compression.
10
-
11
- bzip2/libbzip2 version 1.0.6 of 6 September 2010
12
- Copyright (C) 1996-2010 Julian Seward <jseward@bzip.org>
13
-
14
- Please read the WARNING, DISCLAIMER and PATENTS sections in the
15
- README file.
16
-
17
- This program is released under the terms of the license contained
18
- in the file LICENSE.
19
- ------------------------------------------------------------------ */
20
-
21
-
22
- #include "bzlib_private.h"
23
-
24
- /*---------------------------------------------*/
25
- /*--- Fallback O(N log(N)^2) sorting ---*/
26
- /*--- algorithm, for repetitive blocks ---*/
27
- /*---------------------------------------------*/
28
-
29
- /*---------------------------------------------*/
30
- static
31
- __inline__
32
- void fallbackSimpleSort ( UInt32* fmap,
33
- UInt32* eclass,
34
- Int32 lo,
35
- Int32 hi )
36
- {
37
- Int32 i, j, tmp;
38
- UInt32 ec_tmp;
39
-
40
- if (lo == hi) return;
41
-
42
- if (hi - lo > 3) {
43
- for ( i = hi-4; i >= lo; i-- ) {
44
- tmp = fmap[i];
45
- ec_tmp = eclass[tmp];
46
- for ( j = i+4; j <= hi && ec_tmp > eclass[fmap[j]]; j += 4 )
47
- fmap[j-4] = fmap[j];
48
- fmap[j-4] = tmp;
49
- }
50
- }
51
-
52
- for ( i = hi-1; i >= lo; i-- ) {
53
- tmp = fmap[i];
54
- ec_tmp = eclass[tmp];
55
- for ( j = i+1; j <= hi && ec_tmp > eclass[fmap[j]]; j++ )
56
- fmap[j-1] = fmap[j];
57
- fmap[j-1] = tmp;
58
- }
59
- }
60
-
61
-
62
- /*---------------------------------------------*/
63
- #define fswap(zz1, zz2) \
64
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
65
-
66
- #define fvswap(zzp1, zzp2, zzn) \
67
- { \
68
- Int32 yyp1 = (zzp1); \
69
- Int32 yyp2 = (zzp2); \
70
- Int32 yyn = (zzn); \
71
- while (yyn > 0) { \
72
- fswap(fmap[yyp1], fmap[yyp2]); \
73
- yyp1++; yyp2++; yyn--; \
74
- } \
75
- }
76
-
77
-
78
- #define fmin(a,b) ((a) < (b)) ? (a) : (b)
79
-
80
- #define fpush(lz,hz) { stackLo[sp] = lz; \
81
- stackHi[sp] = hz; \
82
- sp++; }
83
-
84
- #define fpop(lz,hz) { sp--; \
85
- lz = stackLo[sp]; \
86
- hz = stackHi[sp]; }
87
-
88
- #define FALLBACK_QSORT_SMALL_THRESH 10
89
- #define FALLBACK_QSORT_STACK_SIZE 100
90
-
91
-
92
- static
93
- void fallbackQSort3 ( UInt32* fmap,
94
- UInt32* eclass,
95
- Int32 loSt,
96
- Int32 hiSt )
97
- {
98
- Int32 unLo, unHi, ltLo, gtHi, n, m;
99
- Int32 sp, lo, hi;
100
- UInt32 med, r, r3;
101
- Int32 stackLo[FALLBACK_QSORT_STACK_SIZE];
102
- Int32 stackHi[FALLBACK_QSORT_STACK_SIZE];
103
-
104
- r = 0;
105
-
106
- sp = 0;
107
- fpush ( loSt, hiSt );
108
-
109
- while (sp > 0) {
110
-
111
- AssertH ( sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004 );
112
-
113
- fpop ( lo, hi );
114
- if (hi - lo < FALLBACK_QSORT_SMALL_THRESH) {
115
- fallbackSimpleSort ( fmap, eclass, lo, hi );
116
- continue;
117
- }
118
-
119
- /* Random partitioning. Median of 3 sometimes fails to
120
- avoid bad cases. Median of 9 seems to help but
121
- looks rather expensive. This too seems to work but
122
- is cheaper. Guidance for the magic constants
123
- 7621 and 32768 is taken from Sedgewick's algorithms
124
- book, chapter 35.
125
- */
126
- r = ((r * 7621) + 1) % 32768;
127
- r3 = r % 3;
128
- if (r3 == 0) med = eclass[fmap[lo]]; else
129
- if (r3 == 1) med = eclass[fmap[(lo+hi)>>1]]; else
130
- med = eclass[fmap[hi]];
131
-
132
- unLo = ltLo = lo;
133
- unHi = gtHi = hi;
134
-
135
- while (1) {
136
- while (1) {
137
- if (unLo > unHi) break;
138
- n = (Int32)eclass[fmap[unLo]] - (Int32)med;
139
- if (n == 0) {
140
- fswap(fmap[unLo], fmap[ltLo]);
141
- ltLo++; unLo++;
142
- continue;
143
- };
144
- if (n > 0) break;
145
- unLo++;
146
- }
147
- while (1) {
148
- if (unLo > unHi) break;
149
- n = (Int32)eclass[fmap[unHi]] - (Int32)med;
150
- if (n == 0) {
151
- fswap(fmap[unHi], fmap[gtHi]);
152
- gtHi--; unHi--;
153
- continue;
154
- };
155
- if (n < 0) break;
156
- unHi--;
157
- }
158
- if (unLo > unHi) break;
159
- fswap(fmap[unLo], fmap[unHi]); unLo++; unHi--;
160
- }
161
-
162
- AssertD ( unHi == unLo-1, "fallbackQSort3(2)" );
163
-
164
- if (gtHi < ltLo) continue;
165
-
166
- n = fmin(ltLo-lo, unLo-ltLo); fvswap(lo, unLo-n, n);
167
- m = fmin(hi-gtHi, gtHi-unHi); fvswap(unLo, hi-m+1, m);
168
-
169
- n = lo + unLo - ltLo - 1;
170
- m = hi - (gtHi - unHi) + 1;
171
-
172
- if (n - lo > hi - m) {
173
- fpush ( lo, n );
174
- fpush ( m, hi );
175
- } else {
176
- fpush ( m, hi );
177
- fpush ( lo, n );
178
- }
179
- }
180
- }
181
-
182
- #undef fmin
183
- #undef fpush
184
- #undef fpop
185
- #undef fswap
186
- #undef fvswap
187
- #undef FALLBACK_QSORT_SMALL_THRESH
188
- #undef FALLBACK_QSORT_STACK_SIZE
189
-
190
-
191
- /*---------------------------------------------*/
192
- /* Pre:
193
- nblock > 0
194
- eclass exists for [0 .. nblock-1]
195
- ((UChar*)eclass) [0 .. nblock-1] holds block
196
- ptr exists for [0 .. nblock-1]
197
-
198
- Post:
199
- ((UChar*)eclass) [0 .. nblock-1] holds block
200
- All other areas of eclass destroyed
201
- fmap [0 .. nblock-1] holds sorted order
202
- bhtab [ 0 .. 2+(nblock/32) ] destroyed
203
- */
204
-
205
- #define SET_BH(zz) bhtab[(zz) >> 5] |= (1 << ((zz) & 31))
206
- #define CLEAR_BH(zz) bhtab[(zz) >> 5] &= ~(1 << ((zz) & 31))
207
- #define ISSET_BH(zz) (bhtab[(zz) >> 5] & (1 << ((zz) & 31)))
208
- #define WORD_BH(zz) bhtab[(zz) >> 5]
209
- #define UNALIGNED_BH(zz) ((zz) & 0x01f)
210
-
211
- static
212
- void fallbackSort ( UInt32* fmap,
213
- UInt32* eclass,
214
- UInt32* bhtab,
215
- Int32 nblock,
216
- Int32 verb )
217
- {
218
- Int32 ftab[257];
219
- Int32 ftabCopy[256];
220
- Int32 H, i, j, k, l, r, cc, cc1;
221
- Int32 nNotDone;
222
- Int32 nBhtab;
223
- UChar* eclass8 = (UChar*)eclass;
224
-
225
- /*--
226
- Initial 1-char radix sort to generate
227
- initial fmap and initial BH bits.
228
- --*/
229
- if (verb >= 4)
230
- VPrintf0 ( " bucket sorting ...\n" );
231
- for (i = 0; i < 257; i++) ftab[i] = 0;
232
- for (i = 0; i < nblock; i++) ftab[eclass8[i]]++;
233
- for (i = 0; i < 256; i++) ftabCopy[i] = ftab[i];
234
- for (i = 1; i < 257; i++) ftab[i] += ftab[i-1];
235
-
236
- for (i = 0; i < nblock; i++) {
237
- j = eclass8[i];
238
- k = ftab[j] - 1;
239
- ftab[j] = k;
240
- fmap[k] = i;
241
- }
242
-
243
- nBhtab = 2 + (nblock / 32);
244
- for (i = 0; i < nBhtab; i++) bhtab[i] = 0;
245
- for (i = 0; i < 256; i++) SET_BH(ftab[i]);
246
-
247
- /*--
248
- Inductively refine the buckets. Kind-of an
249
- "exponential radix sort" (!), inspired by the
250
- Manber-Myers suffix array construction algorithm.
251
- --*/
252
-
253
- /*-- set sentinel bits for block-end detection --*/
254
- for (i = 0; i < 32; i++) {
255
- SET_BH(nblock + 2*i);
256
- CLEAR_BH(nblock + 2*i + 1);
257
- }
258
-
259
- /*-- the log(N) loop --*/
260
- H = 1;
261
- while (1) {
262
-
263
- if (verb >= 4)
264
- VPrintf1 ( " depth %6d has ", H );
265
-
266
- j = 0;
267
- for (i = 0; i < nblock; i++) {
268
- if (ISSET_BH(i)) j = i;
269
- k = fmap[i] - H; if (k < 0) k += nblock;
270
- eclass[k] = j;
271
- }
272
-
273
- nNotDone = 0;
274
- r = -1;
275
- while (1) {
276
-
277
- /*-- find the next non-singleton bucket --*/
278
- k = r + 1;
279
- while (ISSET_BH(k) && UNALIGNED_BH(k)) k++;
280
- if (ISSET_BH(k)) {
281
- while (WORD_BH(k) == 0xffffffff) k += 32;
282
- while (ISSET_BH(k)) k++;
283
- }
284
- l = k - 1;
285
- if (l >= nblock) break;
286
- while (!ISSET_BH(k) && UNALIGNED_BH(k)) k++;
287
- if (!ISSET_BH(k)) {
288
- while (WORD_BH(k) == 0x00000000) k += 32;
289
- while (!ISSET_BH(k)) k++;
290
- }
291
- r = k - 1;
292
- if (r >= nblock) break;
293
-
294
- /*-- now [l, r] bracket current bucket --*/
295
- if (r > l) {
296
- nNotDone += (r - l + 1);
297
- fallbackQSort3 ( fmap, eclass, l, r );
298
-
299
- /*-- scan bucket and generate header bits-- */
300
- cc = -1;
301
- for (i = l; i <= r; i++) {
302
- cc1 = eclass[fmap[i]];
303
- if (cc != cc1) { SET_BH(i); cc = cc1; };
304
- }
305
- }
306
- }
307
-
308
- if (verb >= 4)
309
- VPrintf1 ( "%6d unresolved strings\n", nNotDone );
310
-
311
- H *= 2;
312
- if (H > nblock || nNotDone == 0) break;
313
- }
314
-
315
- /*--
316
- Reconstruct the original block in
317
- eclass8 [0 .. nblock-1], since the
318
- previous phase destroyed it.
319
- --*/
320
- if (verb >= 4)
321
- VPrintf0 ( " reconstructing block ...\n" );
322
- j = 0;
323
- for (i = 0; i < nblock; i++) {
324
- while (ftabCopy[j] == 0) j++;
325
- ftabCopy[j]--;
326
- eclass8[fmap[i]] = (UChar)j;
327
- }
328
- AssertH ( j < 256, 1005 );
329
- }
330
-
331
- #undef SET_BH
332
- #undef CLEAR_BH
333
- #undef ISSET_BH
334
- #undef WORD_BH
335
- #undef UNALIGNED_BH
336
-
337
-
338
- /*---------------------------------------------*/
339
- /*--- The main, O(N^2 log(N)) sorting ---*/
340
- /*--- algorithm. Faster for "normal" ---*/
341
- /*--- non-repetitive blocks. ---*/
342
- /*---------------------------------------------*/
343
-
344
- /*---------------------------------------------*/
345
- static
346
- __inline__
347
- Bool mainGtU ( UInt32 i1,
348
- UInt32 i2,
349
- UChar* block,
350
- UInt16* quadrant,
351
- UInt32 nblock,
352
- Int32* budget )
353
- {
354
- Int32 k;
355
- UChar c1, c2;
356
- UInt16 s1, s2;
357
-
358
- AssertD ( i1 != i2, "mainGtU" );
359
- /* 1 */
360
- c1 = block[i1]; c2 = block[i2];
361
- if (c1 != c2) return (c1 > c2);
362
- i1++; i2++;
363
- /* 2 */
364
- c1 = block[i1]; c2 = block[i2];
365
- if (c1 != c2) return (c1 > c2);
366
- i1++; i2++;
367
- /* 3 */
368
- c1 = block[i1]; c2 = block[i2];
369
- if (c1 != c2) return (c1 > c2);
370
- i1++; i2++;
371
- /* 4 */
372
- c1 = block[i1]; c2 = block[i2];
373
- if (c1 != c2) return (c1 > c2);
374
- i1++; i2++;
375
- /* 5 */
376
- c1 = block[i1]; c2 = block[i2];
377
- if (c1 != c2) return (c1 > c2);
378
- i1++; i2++;
379
- /* 6 */
380
- c1 = block[i1]; c2 = block[i2];
381
- if (c1 != c2) return (c1 > c2);
382
- i1++; i2++;
383
- /* 7 */
384
- c1 = block[i1]; c2 = block[i2];
385
- if (c1 != c2) return (c1 > c2);
386
- i1++; i2++;
387
- /* 8 */
388
- c1 = block[i1]; c2 = block[i2];
389
- if (c1 != c2) return (c1 > c2);
390
- i1++; i2++;
391
- /* 9 */
392
- c1 = block[i1]; c2 = block[i2];
393
- if (c1 != c2) return (c1 > c2);
394
- i1++; i2++;
395
- /* 10 */
396
- c1 = block[i1]; c2 = block[i2];
397
- if (c1 != c2) return (c1 > c2);
398
- i1++; i2++;
399
- /* 11 */
400
- c1 = block[i1]; c2 = block[i2];
401
- if (c1 != c2) return (c1 > c2);
402
- i1++; i2++;
403
- /* 12 */
404
- c1 = block[i1]; c2 = block[i2];
405
- if (c1 != c2) return (c1 > c2);
406
- i1++; i2++;
407
-
408
- k = nblock + 8;
409
-
410
- do {
411
- /* 1 */
412
- c1 = block[i1]; c2 = block[i2];
413
- if (c1 != c2) return (c1 > c2);
414
- s1 = quadrant[i1]; s2 = quadrant[i2];
415
- if (s1 != s2) return (s1 > s2);
416
- i1++; i2++;
417
- /* 2 */
418
- c1 = block[i1]; c2 = block[i2];
419
- if (c1 != c2) return (c1 > c2);
420
- s1 = quadrant[i1]; s2 = quadrant[i2];
421
- if (s1 != s2) return (s1 > s2);
422
- i1++; i2++;
423
- /* 3 */
424
- c1 = block[i1]; c2 = block[i2];
425
- if (c1 != c2) return (c1 > c2);
426
- s1 = quadrant[i1]; s2 = quadrant[i2];
427
- if (s1 != s2) return (s1 > s2);
428
- i1++; i2++;
429
- /* 4 */
430
- c1 = block[i1]; c2 = block[i2];
431
- if (c1 != c2) return (c1 > c2);
432
- s1 = quadrant[i1]; s2 = quadrant[i2];
433
- if (s1 != s2) return (s1 > s2);
434
- i1++; i2++;
435
- /* 5 */
436
- c1 = block[i1]; c2 = block[i2];
437
- if (c1 != c2) return (c1 > c2);
438
- s1 = quadrant[i1]; s2 = quadrant[i2];
439
- if (s1 != s2) return (s1 > s2);
440
- i1++; i2++;
441
- /* 6 */
442
- c1 = block[i1]; c2 = block[i2];
443
- if (c1 != c2) return (c1 > c2);
444
- s1 = quadrant[i1]; s2 = quadrant[i2];
445
- if (s1 != s2) return (s1 > s2);
446
- i1++; i2++;
447
- /* 7 */
448
- c1 = block[i1]; c2 = block[i2];
449
- if (c1 != c2) return (c1 > c2);
450
- s1 = quadrant[i1]; s2 = quadrant[i2];
451
- if (s1 != s2) return (s1 > s2);
452
- i1++; i2++;
453
- /* 8 */
454
- c1 = block[i1]; c2 = block[i2];
455
- if (c1 != c2) return (c1 > c2);
456
- s1 = quadrant[i1]; s2 = quadrant[i2];
457
- if (s1 != s2) return (s1 > s2);
458
- i1++; i2++;
459
-
460
- if (i1 >= nblock) i1 -= nblock;
461
- if (i2 >= nblock) i2 -= nblock;
462
-
463
- k -= 8;
464
- (*budget)--;
465
- }
466
- while (k >= 0);
467
-
468
- return False;
469
- }
470
-
471
-
472
- /*---------------------------------------------*/
473
- /*--
474
- Knuth's increments seem to work better
475
- than Incerpi-Sedgewick here. Possibly
476
- because the number of elems to sort is
477
- usually small, typically <= 20.
478
- --*/
479
- static
480
- Int32 incs[14] = { 1, 4, 13, 40, 121, 364, 1093, 3280,
481
- 9841, 29524, 88573, 265720,
482
- 797161, 2391484 };
483
-
484
- static
485
- void mainSimpleSort ( UInt32* ptr,
486
- UChar* block,
487
- UInt16* quadrant,
488
- Int32 nblock,
489
- Int32 lo,
490
- Int32 hi,
491
- Int32 d,
492
- Int32* budget )
493
- {
494
- Int32 i, j, h, bigN, hp;
495
- UInt32 v;
496
-
497
- bigN = hi - lo + 1;
498
- if (bigN < 2) return;
499
-
500
- hp = 0;
501
- while (incs[hp] < bigN) hp++;
502
- hp--;
503
-
504
- for (; hp >= 0; hp--) {
505
- h = incs[hp];
506
-
507
- i = lo + h;
508
- while (True) {
509
-
510
- /*-- copy 1 --*/
511
- if (i > hi) break;
512
- v = ptr[i];
513
- j = i;
514
- while ( mainGtU (
515
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
516
- ) ) {
517
- ptr[j] = ptr[j-h];
518
- j = j - h;
519
- if (j <= (lo + h - 1)) break;
520
- }
521
- ptr[j] = v;
522
- i++;
523
-
524
- /*-- copy 2 --*/
525
- if (i > hi) break;
526
- v = ptr[i];
527
- j = i;
528
- while ( mainGtU (
529
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
530
- ) ) {
531
- ptr[j] = ptr[j-h];
532
- j = j - h;
533
- if (j <= (lo + h - 1)) break;
534
- }
535
- ptr[j] = v;
536
- i++;
537
-
538
- /*-- copy 3 --*/
539
- if (i > hi) break;
540
- v = ptr[i];
541
- j = i;
542
- while ( mainGtU (
543
- ptr[j-h]+d, v+d, block, quadrant, nblock, budget
544
- ) ) {
545
- ptr[j] = ptr[j-h];
546
- j = j - h;
547
- if (j <= (lo + h - 1)) break;
548
- }
549
- ptr[j] = v;
550
- i++;
551
-
552
- if (*budget < 0) return;
553
- }
554
- }
555
- }
556
-
557
-
558
- /*---------------------------------------------*/
559
- /*--
560
- The following is an implementation of
561
- an elegant 3-way quicksort for strings,
562
- described in a paper "Fast Algorithms for
563
- Sorting and Searching Strings", by Robert
564
- Sedgewick and Jon L. Bentley.
565
- --*/
566
-
567
- #define mswap(zz1, zz2) \
568
- { Int32 zztmp = zz1; zz1 = zz2; zz2 = zztmp; }
569
-
570
- #define mvswap(zzp1, zzp2, zzn) \
571
- { \
572
- Int32 yyp1 = (zzp1); \
573
- Int32 yyp2 = (zzp2); \
574
- Int32 yyn = (zzn); \
575
- while (yyn > 0) { \
576
- mswap(ptr[yyp1], ptr[yyp2]); \
577
- yyp1++; yyp2++; yyn--; \
578
- } \
579
- }
580
-
581
- static
582
- __inline__
583
- UChar mmed3 ( UChar a, UChar b, UChar c )
584
- {
585
- UChar t;
586
- if (a > b) { t = a; a = b; b = t; };
587
- if (b > c) {
588
- b = c;
589
- if (a > b) b = a;
590
- }
591
- return b;
592
- }
593
-
594
- #define mmin(a,b) ((a) < (b)) ? (a) : (b)
595
-
596
- #define mpush(lz,hz,dz) { stackLo[sp] = lz; \
597
- stackHi[sp] = hz; \
598
- stackD [sp] = dz; \
599
- sp++; }
600
-
601
- #define mpop(lz,hz,dz) { sp--; \
602
- lz = stackLo[sp]; \
603
- hz = stackHi[sp]; \
604
- dz = stackD [sp]; }
605
-
606
-
607
- #define mnextsize(az) (nextHi[az]-nextLo[az])
608
-
609
- #define mnextswap(az,bz) \
610
- { Int32 tz; \
611
- tz = nextLo[az]; nextLo[az] = nextLo[bz]; nextLo[bz] = tz; \
612
- tz = nextHi[az]; nextHi[az] = nextHi[bz]; nextHi[bz] = tz; \
613
- tz = nextD [az]; nextD [az] = nextD [bz]; nextD [bz] = tz; }
614
-
615
-
616
- #define MAIN_QSORT_SMALL_THRESH 20
617
- #define MAIN_QSORT_DEPTH_THRESH (BZ_N_RADIX + BZ_N_QSORT)
618
- #define MAIN_QSORT_STACK_SIZE 100
619
-
620
- static
621
- void mainQSort3 ( UInt32* ptr,
622
- UChar* block,
623
- UInt16* quadrant,
624
- Int32 nblock,
625
- Int32 loSt,
626
- Int32 hiSt,
627
- Int32 dSt,
628
- Int32* budget )
629
- {
630
- Int32 unLo, unHi, ltLo, gtHi, n, m, med;
631
- Int32 sp, lo, hi, d;
632
-
633
- Int32 stackLo[MAIN_QSORT_STACK_SIZE];
634
- Int32 stackHi[MAIN_QSORT_STACK_SIZE];
635
- Int32 stackD [MAIN_QSORT_STACK_SIZE];
636
-
637
- Int32 nextLo[3];
638
- Int32 nextHi[3];
639
- Int32 nextD [3];
640
-
641
- sp = 0;
642
- mpush ( loSt, hiSt, dSt );
643
-
644
- while (sp > 0) {
645
-
646
- AssertH ( sp < MAIN_QSORT_STACK_SIZE - 2, 1001 );
647
-
648
- mpop ( lo, hi, d );
649
- if (hi - lo < MAIN_QSORT_SMALL_THRESH ||
650
- d > MAIN_QSORT_DEPTH_THRESH) {
651
- mainSimpleSort ( ptr, block, quadrant, nblock, lo, hi, d, budget );
652
- if (*budget < 0) return;
653
- continue;
654
- }
655
-
656
- med = (Int32)
657
- mmed3 ( block[ptr[ lo ]+d],
658
- block[ptr[ hi ]+d],
659
- block[ptr[ (lo+hi)>>1 ]+d] );
660
-
661
- unLo = ltLo = lo;
662
- unHi = gtHi = hi;
663
-
664
- while (True) {
665
- while (True) {
666
- if (unLo > unHi) break;
667
- n = ((Int32)block[ptr[unLo]+d]) - med;
668
- if (n == 0) {
669
- mswap(ptr[unLo], ptr[ltLo]);
670
- ltLo++; unLo++; continue;
671
- };
672
- if (n > 0) break;
673
- unLo++;
674
- }
675
- while (True) {
676
- if (unLo > unHi) break;
677
- n = ((Int32)block[ptr[unHi]+d]) - med;
678
- if (n == 0) {
679
- mswap(ptr[unHi], ptr[gtHi]);
680
- gtHi--; unHi--; continue;
681
- };
682
- if (n < 0) break;
683
- unHi--;
684
- }
685
- if (unLo > unHi) break;
686
- mswap(ptr[unLo], ptr[unHi]); unLo++; unHi--;
687
- }
688
-
689
- AssertD ( unHi == unLo-1, "mainQSort3(2)" );
690
-
691
- if (gtHi < ltLo) {
692
- mpush(lo, hi, d+1 );
693
- continue;
694
- }
695
-
696
- n = mmin(ltLo-lo, unLo-ltLo); mvswap(lo, unLo-n, n);
697
- m = mmin(hi-gtHi, gtHi-unHi); mvswap(unLo, hi-m+1, m);
698
-
699
- n = lo + unLo - ltLo - 1;
700
- m = hi - (gtHi - unHi) + 1;
701
-
702
- nextLo[0] = lo; nextHi[0] = n; nextD[0] = d;
703
- nextLo[1] = m; nextHi[1] = hi; nextD[1] = d;
704
- nextLo[2] = n+1; nextHi[2] = m-1; nextD[2] = d+1;
705
-
706
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
707
- if (mnextsize(1) < mnextsize(2)) mnextswap(1,2);
708
- if (mnextsize(0) < mnextsize(1)) mnextswap(0,1);
709
-
710
- AssertD (mnextsize(0) >= mnextsize(1), "mainQSort3(8)" );
711
- AssertD (mnextsize(1) >= mnextsize(2), "mainQSort3(9)" );
712
-
713
- mpush (nextLo[0], nextHi[0], nextD[0]);
714
- mpush (nextLo[1], nextHi[1], nextD[1]);
715
- mpush (nextLo[2], nextHi[2], nextD[2]);
716
- }
717
- }
718
-
719
- #undef mswap
720
- #undef mvswap
721
- #undef mpush
722
- #undef mpop
723
- #undef mmin
724
- #undef mnextsize
725
- #undef mnextswap
726
- #undef MAIN_QSORT_SMALL_THRESH
727
- #undef MAIN_QSORT_DEPTH_THRESH
728
- #undef MAIN_QSORT_STACK_SIZE
729
-
730
-
731
- /*---------------------------------------------*/
732
- /* Pre:
733
- nblock > N_OVERSHOOT
734
- block32 exists for [0 .. nblock-1 +N_OVERSHOOT]
735
- ((UChar*)block32) [0 .. nblock-1] holds block
736
- ptr exists for [0 .. nblock-1]
737
-
738
- Post:
739
- ((UChar*)block32) [0 .. nblock-1] holds block
740
- All other areas of block32 destroyed
741
- ftab [0 .. 65536 ] destroyed
742
- ptr [0 .. nblock-1] holds sorted order
743
- if (*budget < 0), sorting was abandoned
744
- */
745
-
746
- #define BIGFREQ(b) (ftab[((b)+1) << 8] - ftab[(b) << 8])
747
- #define SETMASK (1 << 21)
748
- #define CLEARMASK (~(SETMASK))
749
-
750
- static
751
- void mainSort ( UInt32* ptr,
752
- UChar* block,
753
- UInt16* quadrant,
754
- UInt32* ftab,
755
- Int32 nblock,
756
- Int32 verb,
757
- Int32* budget )
758
- {
759
- Int32 i, j, k, ss, sb;
760
- Int32 runningOrder[256];
761
- Bool bigDone[256];
762
- Int32 copyStart[256];
763
- Int32 copyEnd [256];
764
- UChar c1;
765
- Int32 numQSorted;
766
- UInt16 s;
767
- if (verb >= 4) VPrintf0 ( " main sort initialise ...\n" );
768
-
769
- /*-- set up the 2-byte frequency table --*/
770
- for (i = 65536; i >= 0; i--) ftab[i] = 0;
771
-
772
- j = block[0] << 8;
773
- i = nblock-1;
774
- for (; i >= 3; i -= 4) {
775
- quadrant[i] = 0;
776
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
777
- ftab[j]++;
778
- quadrant[i-1] = 0;
779
- j = (j >> 8) | ( ((UInt16)block[i-1]) << 8);
780
- ftab[j]++;
781
- quadrant[i-2] = 0;
782
- j = (j >> 8) | ( ((UInt16)block[i-2]) << 8);
783
- ftab[j]++;
784
- quadrant[i-3] = 0;
785
- j = (j >> 8) | ( ((UInt16)block[i-3]) << 8);
786
- ftab[j]++;
787
- }
788
- for (; i >= 0; i--) {
789
- quadrant[i] = 0;
790
- j = (j >> 8) | ( ((UInt16)block[i]) << 8);
791
- ftab[j]++;
792
- }
793
-
794
- /*-- (emphasises close relationship of block & quadrant) --*/
795
- for (i = 0; i < BZ_N_OVERSHOOT; i++) {
796
- block [nblock+i] = block[i];
797
- quadrant[nblock+i] = 0;
798
- }
799
-
800
- if (verb >= 4) VPrintf0 ( " bucket sorting ...\n" );
801
-
802
- /*-- Complete the initial radix sort --*/
803
- for (i = 1; i <= 65536; i++) ftab[i] += ftab[i-1];
804
-
805
- s = block[0] << 8;
806
- i = nblock-1;
807
- for (; i >= 3; i -= 4) {
808
- s = (s >> 8) | (block[i] << 8);
809
- j = ftab[s] -1;
810
- ftab[s] = j;
811
- ptr[j] = i;
812
- s = (s >> 8) | (block[i-1] << 8);
813
- j = ftab[s] -1;
814
- ftab[s] = j;
815
- ptr[j] = i-1;
816
- s = (s >> 8) | (block[i-2] << 8);
817
- j = ftab[s] -1;
818
- ftab[s] = j;
819
- ptr[j] = i-2;
820
- s = (s >> 8) | (block[i-3] << 8);
821
- j = ftab[s] -1;
822
- ftab[s] = j;
823
- ptr[j] = i-3;
824
- }
825
- for (; i >= 0; i--) {
826
- s = (s >> 8) | (block[i] << 8);
827
- j = ftab[s] -1;
828
- ftab[s] = j;
829
- ptr[j] = i;
830
- }
831
-
832
- /*--
833
- Now ftab contains the first loc of every small bucket.
834
- Calculate the running order, from smallest to largest
835
- big bucket.
836
- --*/
837
- for (i = 0; i <= 255; i++) {
838
- bigDone [i] = False;
839
- runningOrder[i] = i;
840
- }
841
-
842
- {
843
- Int32 vv;
844
- Int32 h = 1;
845
- do h = 3 * h + 1; while (h <= 256);
846
- do {
847
- h = h / 3;
848
- for (i = h; i <= 255; i++) {
849
- vv = runningOrder[i];
850
- j = i;
851
- while ( BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv) ) {
852
- runningOrder[j] = runningOrder[j-h];
853
- j = j - h;
854
- if (j <= (h - 1)) goto zero;
855
- }
856
- zero:
857
- runningOrder[j] = vv;
858
- }
859
- } while (h != 1);
860
- }
861
-
862
- /*--
863
- The main sorting loop.
864
- --*/
865
-
866
- numQSorted = 0;
867
-
868
- for (i = 0; i <= 255; i++) {
869
-
870
- /*--
871
- Process big buckets, starting with the least full.
872
- Basically this is a 3-step process in which we call
873
- mainQSort3 to sort the small buckets [ss, j], but
874
- also make a big effort to avoid the calls if we can.
875
- --*/
876
- ss = runningOrder[i];
877
-
878
- /*--
879
- Step 1:
880
- Complete the big bucket [ss] by quicksorting
881
- any unsorted small buckets [ss, j], for j != ss.
882
- Hopefully previous pointer-scanning phases have already
883
- completed many of the small buckets [ss, j], so
884
- we don't have to sort them at all.
885
- --*/
886
- for (j = 0; j <= 255; j++) {
887
- if (j != ss) {
888
- sb = (ss << 8) + j;
889
- if ( ! (ftab[sb] & SETMASK) ) {
890
- Int32 lo = ftab[sb] & CLEARMASK;
891
- Int32 hi = (ftab[sb+1] & CLEARMASK) - 1;
892
- if (hi > lo) {
893
- if (verb >= 4)
894
- VPrintf4 ( " qsort [0x%x, 0x%x] "
895
- "done %d this %d\n",
896
- ss, j, numQSorted, hi - lo + 1 );
897
- mainQSort3 (
898
- ptr, block, quadrant, nblock,
899
- lo, hi, BZ_N_RADIX, budget
900
- );
901
- numQSorted += (hi - lo + 1);
902
- if (*budget < 0) return;
903
- }
904
- }
905
- ftab[sb] |= SETMASK;
906
- }
907
- }
908
-
909
- AssertH ( !bigDone[ss], 1006 );
910
-
911
- /*--
912
- Step 2:
913
- Now scan this big bucket [ss] so as to synthesise the
914
- sorted order for small buckets [t, ss] for all t,
915
- including, magically, the bucket [ss,ss] too.
916
- This will avoid doing Real Work in subsequent Step 1's.
917
- --*/
918
- {
919
- for (j = 0; j <= 255; j++) {
920
- copyStart[j] = ftab[(j << 8) + ss] & CLEARMASK;
921
- copyEnd [j] = (ftab[(j << 8) + ss + 1] & CLEARMASK) - 1;
922
- }
923
- for (j = ftab[ss << 8] & CLEARMASK; j < copyStart[ss]; j++) {
924
- k = ptr[j]-1; if (k < 0) k += nblock;
925
- c1 = block[k];
926
- if (!bigDone[c1])
927
- ptr[ copyStart[c1]++ ] = k;
928
- }
929
- for (j = (ftab[(ss+1) << 8] & CLEARMASK) - 1; j > copyEnd[ss]; j--) {
930
- k = ptr[j]-1; if (k < 0) k += nblock;
931
- c1 = block[k];
932
- if (!bigDone[c1])
933
- ptr[ copyEnd[c1]-- ] = k;
934
- }
935
- }
936
-
937
- AssertH ( (copyStart[ss]-1 == copyEnd[ss])
938
- ||
939
- /* Extremely rare case missing in bzip2-1.0.0 and 1.0.1.
940
- Necessity for this case is demonstrated by compressing
941
- a sequence of approximately 48.5 million of character
942
- 251; 1.0.0/1.0.1 will then die here. */
943
- (copyStart[ss] == 0 && copyEnd[ss] == nblock-1),
944
- 1007 )
945
-
946
- for (j = 0; j <= 255; j++) ftab[(j << 8) + ss] |= SETMASK;
947
-
948
- /*--
949
- Step 3:
950
- The [ss] big bucket is now done. Record this fact,
951
- and update the quadrant descriptors. Remember to
952
- update quadrants in the overshoot area too, if
953
- necessary. The "if (i < 255)" test merely skips
954
- this updating for the last bucket processed, since
955
- updating for the last bucket is pointless.
956
-
957
- The quadrant array provides a way to incrementally
958
- cache sort orderings, as they appear, so as to
959
- make subsequent comparisons in fullGtU() complete
960
- faster. For repetitive blocks this makes a big
961
- difference (but not big enough to be able to avoid
962
- the fallback sorting mechanism, exponential radix sort).
963
-
964
- The precise meaning is: at all times:
965
-
966
- for 0 <= i < nblock and 0 <= j <= nblock
967
-
968
- if block[i] != block[j],
969
-
970
- then the relative values of quadrant[i] and
971
- quadrant[j] are meaningless.
972
-
973
- else {
974
- if quadrant[i] < quadrant[j]
975
- then the string starting at i lexicographically
976
- precedes the string starting at j
977
-
978
- else if quadrant[i] > quadrant[j]
979
- then the string starting at j lexicographically
980
- precedes the string starting at i
981
-
982
- else
983
- the relative ordering of the strings starting
984
- at i and j has not yet been determined.
985
- }
986
- --*/
987
- bigDone[ss] = True;
988
-
989
- if (i < 255) {
990
- Int32 bbStart = ftab[ss << 8] & CLEARMASK;
991
- Int32 bbSize = (ftab[(ss+1) << 8] & CLEARMASK) - bbStart;
992
- Int32 shifts = 0;
993
-
994
- while ((bbSize >> shifts) > 65534) shifts++;
995
-
996
- for (j = bbSize-1; j >= 0; j--) {
997
- Int32 a2update = ptr[bbStart + j];
998
- UInt16 qVal = (UInt16)(j >> shifts);
999
- quadrant[a2update] = qVal;
1000
- if (a2update < BZ_N_OVERSHOOT)
1001
- quadrant[a2update + nblock] = qVal;
1002
- }
1003
- AssertH ( ((bbSize-1) >> shifts) <= 65535, 1002 );
1004
- }
1005
-
1006
- }
1007
-
1008
- if (verb >= 4)
1009
- VPrintf3 ( " %d pointers, %d sorted, %d scanned\n",
1010
- nblock, numQSorted, nblock - numQSorted );
1011
- }
1012
-
1013
- #undef BIGFREQ
1014
- #undef SETMASK
1015
- #undef CLEARMASK
1016
-
1017
-
1018
- /*---------------------------------------------*/
1019
- /* Pre:
1020
- nblock > 0
1021
- arr2 exists for [0 .. nblock-1 +N_OVERSHOOT]
1022
- ((UChar*)arr2) [0 .. nblock-1] holds block
1023
- arr1 exists for [0 .. nblock-1]
1024
-
1025
- Post:
1026
- ((UChar*)arr2) [0 .. nblock-1] holds block
1027
- All other areas of block destroyed
1028
- ftab [ 0 .. 65536 ] destroyed
1029
- arr1 [0 .. nblock-1] holds sorted order
1030
- */
1031
- void BZ2_blockSort ( EState* s )
1032
- {
1033
- UInt32* ptr = s->ptr;
1034
- UChar* block = s->block;
1035
- UInt32* ftab = s->ftab;
1036
- Int32 nblock = s->nblock;
1037
- Int32 verb = s->verbosity;
1038
- Int32 wfact = s->workFactor;
1039
- UInt16* quadrant;
1040
- Int32 budget;
1041
- Int32 budgetInit;
1042
- Int32 i;
1043
-
1044
- if (nblock < 10000) {
1045
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
1046
- } else {
1047
- /* Calculate the location for quadrant, remembering to get
1048
- the alignment right. Assumes that &(block[0]) is at least
1049
- 2-byte aligned -- this should be ok since block is really
1050
- the first section of arr2.
1051
- */
1052
- i = nblock+BZ_N_OVERSHOOT;
1053
- if (i & 1) i++;
1054
- quadrant = (UInt16*)(&(block[i]));
1055
-
1056
- /* (wfact-1) / 3 puts the default-factor-30
1057
- transition point at very roughly the same place as
1058
- with v0.1 and v0.9.0.
1059
- Not that it particularly matters any more, since the
1060
- resulting compressed stream is now the same regardless
1061
- of whether or not we use the main sort or fallback sort.
1062
- */
1063
- if (wfact < 1 ) wfact = 1;
1064
- if (wfact > 100) wfact = 100;
1065
- budgetInit = nblock * ((wfact-1) / 3);
1066
- budget = budgetInit;
1067
-
1068
- mainSort ( ptr, block, quadrant, ftab, nblock, verb, &budget );
1069
- if (verb >= 3)
1070
- VPrintf3 ( " %d work, %d block, ratio %5.2f\n",
1071
- budgetInit - budget,
1072
- nblock,
1073
- (float)(budgetInit - budget) /
1074
- (float)(nblock==0 ? 1 : nblock) );
1075
- if (budget < 0) {
1076
- if (verb >= 2)
1077
- VPrintf0 ( " too repetitive; using fallback"
1078
- " sorting algorithm\n" );
1079
- fallbackSort ( s->arr1, s->arr2, ftab, nblock, verb );
1080
- }
1081
- }
1082
-
1083
- s->origPtr = -1;
1084
- for (i = 0; i < s->nblock; i++)
1085
- if (ptr[i] == 0)
1086
- { s->origPtr = i; break; };
1087
-
1088
- AssertH( s->origPtr != -1, 1003 );
1089
- }
1090
-
1091
-
1092
- /*-------------------------------------------------------------*/
1093
- /*--- end blocksort.c ---*/
1094
- /*-------------------------------------------------------------*/