d.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. /*
  2. * Copyright (c) 2000-2018, 达梦数据库有限公司.
  3. * All rights reserved.
  4. */
  5. package dm
  6. import (
  7. "container/list"
  8. "io"
  9. )
  10. type Dm_build_283 struct {
  11. dm_build_284 *list.List
  12. dm_build_285 *dm_build_337
  13. dm_build_286 int
  14. }
  15. func Dm_build_287() *Dm_build_283 {
  16. return &Dm_build_283{
  17. dm_build_284: list.New(),
  18. dm_build_286: 0,
  19. }
  20. }
  21. func (dm_build_289 *Dm_build_283) Dm_build_288() int {
  22. return dm_build_289.dm_build_286
  23. }
  24. func (dm_build_291 *Dm_build_283) Dm_build_290(dm_build_292 *Dm_build_361, dm_build_293 int) int {
  25. var dm_build_294 = 0
  26. var dm_build_295 = 0
  27. for dm_build_294 < dm_build_293 && dm_build_291.dm_build_285 != nil {
  28. dm_build_295 = dm_build_291.dm_build_285.dm_build_345(dm_build_292, dm_build_293-dm_build_294)
  29. if dm_build_291.dm_build_285.dm_build_340 == 0 {
  30. dm_build_291.dm_build_327()
  31. }
  32. dm_build_294 += dm_build_295
  33. dm_build_291.dm_build_286 -= dm_build_295
  34. }
  35. return dm_build_294
  36. }
  37. func (dm_build_297 *Dm_build_283) Dm_build_296(dm_build_298 []byte, dm_build_299 int, dm_build_300 int) int {
  38. var dm_build_301 = 0
  39. var dm_build_302 = 0
  40. for dm_build_301 < dm_build_300 && dm_build_297.dm_build_285 != nil {
  41. dm_build_302 = dm_build_297.dm_build_285.dm_build_349(dm_build_298, dm_build_299, dm_build_300-dm_build_301)
  42. if dm_build_297.dm_build_285.dm_build_340 == 0 {
  43. dm_build_297.dm_build_327()
  44. }
  45. dm_build_301 += dm_build_302
  46. dm_build_297.dm_build_286 -= dm_build_302
  47. dm_build_299 += dm_build_302
  48. }
  49. return dm_build_301
  50. }
  51. func (dm_build_304 *Dm_build_283) Dm_build_303(dm_build_305 io.Writer, dm_build_306 int) int {
  52. var dm_build_307 = 0
  53. var dm_build_308 = 0
  54. for dm_build_307 < dm_build_306 && dm_build_304.dm_build_285 != nil {
  55. dm_build_308 = dm_build_304.dm_build_285.dm_build_354(dm_build_305, dm_build_306-dm_build_307)
  56. if dm_build_304.dm_build_285.dm_build_340 == 0 {
  57. dm_build_304.dm_build_327()
  58. }
  59. dm_build_307 += dm_build_308
  60. dm_build_304.dm_build_286 -= dm_build_308
  61. }
  62. return dm_build_307
  63. }
  64. func (dm_build_310 *Dm_build_283) Dm_build_309(dm_build_311 []byte, dm_build_312 int, dm_build_313 int) {
  65. if dm_build_313 == 0 {
  66. return
  67. }
  68. var dm_build_314 = dm_build_341(dm_build_311, dm_build_312, dm_build_313)
  69. if dm_build_310.dm_build_285 == nil {
  70. dm_build_310.dm_build_285 = dm_build_314
  71. } else {
  72. dm_build_310.dm_build_284.PushBack(dm_build_314)
  73. }
  74. dm_build_310.dm_build_286 += dm_build_313
  75. }
  76. func (dm_build_316 *Dm_build_283) dm_build_315(dm_build_317 int) byte {
  77. var dm_build_318 = dm_build_317
  78. var dm_build_319 = dm_build_316.dm_build_285
  79. for dm_build_318 > 0 && dm_build_319 != nil {
  80. if dm_build_319.dm_build_340 == 0 {
  81. continue
  82. }
  83. if dm_build_318 > dm_build_319.dm_build_340-1 {
  84. dm_build_318 -= dm_build_319.dm_build_340
  85. dm_build_319 = dm_build_316.dm_build_284.Front().Value.(*dm_build_337)
  86. } else {
  87. break
  88. }
  89. }
  90. return dm_build_319.dm_build_358(dm_build_318)
  91. }
  92. func (dm_build_321 *Dm_build_283) Dm_build_320(dm_build_322 *Dm_build_283) {
  93. if dm_build_322.dm_build_286 == 0 {
  94. return
  95. }
  96. var dm_build_323 = dm_build_322.dm_build_285
  97. for dm_build_323 != nil {
  98. dm_build_321.dm_build_324(dm_build_323)
  99. dm_build_322.dm_build_327()
  100. dm_build_323 = dm_build_322.dm_build_285
  101. }
  102. dm_build_322.dm_build_286 = 0
  103. }
  104. func (dm_build_325 *Dm_build_283) dm_build_324(dm_build_326 *dm_build_337) {
  105. if dm_build_326.dm_build_340 == 0 {
  106. return
  107. }
  108. if dm_build_325.dm_build_285 == nil {
  109. dm_build_325.dm_build_285 = dm_build_326
  110. } else {
  111. dm_build_325.dm_build_284.PushBack(dm_build_326)
  112. }
  113. dm_build_325.dm_build_286 += dm_build_326.dm_build_340
  114. }
  115. func (dm_build_328 *Dm_build_283) dm_build_327() {
  116. var dm_build_329 = dm_build_328.dm_build_284.Front()
  117. if dm_build_329 == nil {
  118. dm_build_328.dm_build_285 = nil
  119. } else {
  120. dm_build_328.dm_build_285 = dm_build_329.Value.(*dm_build_337)
  121. dm_build_328.dm_build_284.Remove(dm_build_329)
  122. }
  123. }
  124. func (dm_build_331 *Dm_build_283) Dm_build_330() []byte {
  125. var dm_build_332 = make([]byte, dm_build_331.dm_build_286)
  126. var dm_build_333 = dm_build_331.dm_build_285
  127. var dm_build_334 = 0
  128. var dm_build_335 = len(dm_build_332)
  129. var dm_build_336 = 0
  130. for dm_build_333 != nil {
  131. if dm_build_333.dm_build_340 > 0 {
  132. if dm_build_335 > dm_build_333.dm_build_340 {
  133. dm_build_336 = dm_build_333.dm_build_340
  134. } else {
  135. dm_build_336 = dm_build_335
  136. }
  137. copy(dm_build_332[dm_build_334:dm_build_334+dm_build_336], dm_build_333.dm_build_338[dm_build_333.dm_build_339:dm_build_333.dm_build_339+dm_build_336])
  138. dm_build_334 += dm_build_336
  139. dm_build_335 -= dm_build_336
  140. }
  141. if dm_build_331.dm_build_284.Front() == nil {
  142. dm_build_333 = nil
  143. } else {
  144. dm_build_333 = dm_build_331.dm_build_284.Front().Value.(*dm_build_337)
  145. }
  146. }
  147. return dm_build_332
  148. }
  149. type dm_build_337 struct {
  150. dm_build_338 []byte
  151. dm_build_339 int
  152. dm_build_340 int
  153. }
  154. func dm_build_341(dm_build_342 []byte, dm_build_343 int, dm_build_344 int) *dm_build_337 {
  155. return &dm_build_337{
  156. dm_build_342,
  157. dm_build_343,
  158. dm_build_344,
  159. }
  160. }
  161. func (dm_build_346 *dm_build_337) dm_build_345(dm_build_347 *Dm_build_361, dm_build_348 int) int {
  162. if dm_build_346.dm_build_340 <= dm_build_348 {
  163. dm_build_348 = dm_build_346.dm_build_340
  164. }
  165. dm_build_347.Dm_build_444(dm_build_346.dm_build_338[dm_build_346.dm_build_339 : dm_build_346.dm_build_339+dm_build_348])
  166. dm_build_346.dm_build_339 += dm_build_348
  167. dm_build_346.dm_build_340 -= dm_build_348
  168. return dm_build_348
  169. }
  170. func (dm_build_350 *dm_build_337) dm_build_349(dm_build_351 []byte, dm_build_352 int, dm_build_353 int) int {
  171. if dm_build_350.dm_build_340 <= dm_build_353 {
  172. dm_build_353 = dm_build_350.dm_build_340
  173. }
  174. copy(dm_build_351[dm_build_352:dm_build_352+dm_build_353], dm_build_350.dm_build_338[dm_build_350.dm_build_339:dm_build_350.dm_build_339+dm_build_353])
  175. dm_build_350.dm_build_339 += dm_build_353
  176. dm_build_350.dm_build_340 -= dm_build_353
  177. return dm_build_353
  178. }
  179. func (dm_build_355 *dm_build_337) dm_build_354(dm_build_356 io.Writer, dm_build_357 int) int {
  180. if dm_build_355.dm_build_340 <= dm_build_357 {
  181. dm_build_357 = dm_build_355.dm_build_340
  182. }
  183. dm_build_356.Write(dm_build_355.dm_build_338[dm_build_355.dm_build_339 : dm_build_355.dm_build_339+dm_build_357])
  184. dm_build_355.dm_build_339 += dm_build_357
  185. dm_build_355.dm_build_340 -= dm_build_357
  186. return dm_build_357
  187. }
  188. func (dm_build_359 *dm_build_337) dm_build_358(dm_build_360 int) byte {
  189. return dm_build_359.dm_build_338[dm_build_359.dm_build_339+dm_build_360]
  190. }