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_931 struct {
  11. dm_build_932 *list.List
  12. dm_build_933 *dm_build_985
  13. dm_build_934 int
  14. }
  15. func Dm_build_935() *Dm_build_931 {
  16. return &Dm_build_931{
  17. dm_build_932: list.New(),
  18. dm_build_934: 0,
  19. }
  20. }
  21. func (dm_build_937 *Dm_build_931) Dm_build_936() int {
  22. return dm_build_937.dm_build_934
  23. }
  24. func (dm_build_939 *Dm_build_931) Dm_build_938(dm_build_940 *Dm_build_1009, dm_build_941 int) int {
  25. var dm_build_942 = 0
  26. var dm_build_943 = 0
  27. for dm_build_942 < dm_build_941 && dm_build_939.dm_build_933 != nil {
  28. dm_build_943 = dm_build_939.dm_build_933.dm_build_993(dm_build_940, dm_build_941-dm_build_942)
  29. if dm_build_939.dm_build_933.dm_build_988 == 0 {
  30. dm_build_939.dm_build_975()
  31. }
  32. dm_build_942 += dm_build_943
  33. dm_build_939.dm_build_934 -= dm_build_943
  34. }
  35. return dm_build_942
  36. }
  37. func (dm_build_945 *Dm_build_931) Dm_build_944(dm_build_946 []byte, dm_build_947 int, dm_build_948 int) int {
  38. var dm_build_949 = 0
  39. var dm_build_950 = 0
  40. for dm_build_949 < dm_build_948 && dm_build_945.dm_build_933 != nil {
  41. dm_build_950 = dm_build_945.dm_build_933.dm_build_997(dm_build_946, dm_build_947, dm_build_948-dm_build_949)
  42. if dm_build_945.dm_build_933.dm_build_988 == 0 {
  43. dm_build_945.dm_build_975()
  44. }
  45. dm_build_949 += dm_build_950
  46. dm_build_945.dm_build_934 -= dm_build_950
  47. dm_build_947 += dm_build_950
  48. }
  49. return dm_build_949
  50. }
  51. func (dm_build_952 *Dm_build_931) Dm_build_951(dm_build_953 io.Writer, dm_build_954 int) int {
  52. var dm_build_955 = 0
  53. var dm_build_956 = 0
  54. for dm_build_955 < dm_build_954 && dm_build_952.dm_build_933 != nil {
  55. dm_build_956 = dm_build_952.dm_build_933.dm_build_1002(dm_build_953, dm_build_954-dm_build_955)
  56. if dm_build_952.dm_build_933.dm_build_988 == 0 {
  57. dm_build_952.dm_build_975()
  58. }
  59. dm_build_955 += dm_build_956
  60. dm_build_952.dm_build_934 -= dm_build_956
  61. }
  62. return dm_build_955
  63. }
  64. func (dm_build_958 *Dm_build_931) Dm_build_957(dm_build_959 []byte, dm_build_960 int, dm_build_961 int) {
  65. if dm_build_961 == 0 {
  66. return
  67. }
  68. var dm_build_962 = dm_build_989(dm_build_959, dm_build_960, dm_build_961)
  69. if dm_build_958.dm_build_933 == nil {
  70. dm_build_958.dm_build_933 = dm_build_962
  71. } else {
  72. dm_build_958.dm_build_932.PushBack(dm_build_962)
  73. }
  74. dm_build_958.dm_build_934 += dm_build_961
  75. }
  76. func (dm_build_964 *Dm_build_931) dm_build_963(dm_build_965 int) byte {
  77. var dm_build_966 = dm_build_965
  78. var dm_build_967 = dm_build_964.dm_build_933
  79. for dm_build_966 > 0 && dm_build_967 != nil {
  80. if dm_build_967.dm_build_988 == 0 {
  81. continue
  82. }
  83. if dm_build_966 > dm_build_967.dm_build_988-1 {
  84. dm_build_966 -= dm_build_967.dm_build_988
  85. dm_build_967 = dm_build_964.dm_build_932.Front().Value.(*dm_build_985)
  86. } else {
  87. break
  88. }
  89. }
  90. return dm_build_967.dm_build_1006(dm_build_966)
  91. }
  92. func (dm_build_969 *Dm_build_931) Dm_build_968(dm_build_970 *Dm_build_931) {
  93. if dm_build_970.dm_build_934 == 0 {
  94. return
  95. }
  96. var dm_build_971 = dm_build_970.dm_build_933
  97. for dm_build_971 != nil {
  98. dm_build_969.dm_build_972(dm_build_971)
  99. dm_build_970.dm_build_975()
  100. dm_build_971 = dm_build_970.dm_build_933
  101. }
  102. dm_build_970.dm_build_934 = 0
  103. }
  104. func (dm_build_973 *Dm_build_931) dm_build_972(dm_build_974 *dm_build_985) {
  105. if dm_build_974.dm_build_988 == 0 {
  106. return
  107. }
  108. if dm_build_973.dm_build_933 == nil {
  109. dm_build_973.dm_build_933 = dm_build_974
  110. } else {
  111. dm_build_973.dm_build_932.PushBack(dm_build_974)
  112. }
  113. dm_build_973.dm_build_934 += dm_build_974.dm_build_988
  114. }
  115. func (dm_build_976 *Dm_build_931) dm_build_975() {
  116. var dm_build_977 = dm_build_976.dm_build_932.Front()
  117. if dm_build_977 == nil {
  118. dm_build_976.dm_build_933 = nil
  119. } else {
  120. dm_build_976.dm_build_933 = dm_build_977.Value.(*dm_build_985)
  121. dm_build_976.dm_build_932.Remove(dm_build_977)
  122. }
  123. }
  124. func (dm_build_979 *Dm_build_931) Dm_build_978() []byte {
  125. var dm_build_980 = make([]byte, dm_build_979.dm_build_934)
  126. var dm_build_981 = dm_build_979.dm_build_933
  127. var dm_build_982 = 0
  128. var dm_build_983 = len(dm_build_980)
  129. var dm_build_984 = 0
  130. for dm_build_981 != nil {
  131. if dm_build_981.dm_build_988 > 0 {
  132. if dm_build_983 > dm_build_981.dm_build_988 {
  133. dm_build_984 = dm_build_981.dm_build_988
  134. } else {
  135. dm_build_984 = dm_build_983
  136. }
  137. copy(dm_build_980[dm_build_982:dm_build_982+dm_build_984], dm_build_981.dm_build_986[dm_build_981.dm_build_987:dm_build_981.dm_build_987+dm_build_984])
  138. dm_build_982 += dm_build_984
  139. dm_build_983 -= dm_build_984
  140. }
  141. if dm_build_979.dm_build_932.Front() == nil {
  142. dm_build_981 = nil
  143. } else {
  144. dm_build_981 = dm_build_979.dm_build_932.Front().Value.(*dm_build_985)
  145. }
  146. }
  147. return dm_build_980
  148. }
  149. type dm_build_985 struct {
  150. dm_build_986 []byte
  151. dm_build_987 int
  152. dm_build_988 int
  153. }
  154. func dm_build_989(dm_build_990 []byte, dm_build_991 int, dm_build_992 int) *dm_build_985 {
  155. return &dm_build_985{
  156. dm_build_990,
  157. dm_build_991,
  158. dm_build_992,
  159. }
  160. }
  161. func (dm_build_994 *dm_build_985) dm_build_993(dm_build_995 *Dm_build_1009, dm_build_996 int) int {
  162. if dm_build_994.dm_build_988 <= dm_build_996 {
  163. dm_build_996 = dm_build_994.dm_build_988
  164. }
  165. dm_build_995.Dm_build_1092(dm_build_994.dm_build_986[dm_build_994.dm_build_987 : dm_build_994.dm_build_987+dm_build_996])
  166. dm_build_994.dm_build_987 += dm_build_996
  167. dm_build_994.dm_build_988 -= dm_build_996
  168. return dm_build_996
  169. }
  170. func (dm_build_998 *dm_build_985) dm_build_997(dm_build_999 []byte, dm_build_1000 int, dm_build_1001 int) int {
  171. if dm_build_998.dm_build_988 <= dm_build_1001 {
  172. dm_build_1001 = dm_build_998.dm_build_988
  173. }
  174. copy(dm_build_999[dm_build_1000:dm_build_1000+dm_build_1001], dm_build_998.dm_build_986[dm_build_998.dm_build_987:dm_build_998.dm_build_987+dm_build_1001])
  175. dm_build_998.dm_build_987 += dm_build_1001
  176. dm_build_998.dm_build_988 -= dm_build_1001
  177. return dm_build_1001
  178. }
  179. func (dm_build_1003 *dm_build_985) dm_build_1002(dm_build_1004 io.Writer, dm_build_1005 int) int {
  180. if dm_build_1003.dm_build_988 <= dm_build_1005 {
  181. dm_build_1005 = dm_build_1003.dm_build_988
  182. }
  183. dm_build_1004.Write(dm_build_1003.dm_build_986[dm_build_1003.dm_build_987 : dm_build_1003.dm_build_987+dm_build_1005])
  184. dm_build_1003.dm_build_987 += dm_build_1005
  185. dm_build_1003.dm_build_988 -= dm_build_1005
  186. return dm_build_1005
  187. }
  188. func (dm_build_1007 *dm_build_985) dm_build_1006(dm_build_1008 int) byte {
  189. return dm_build_1007.dm_build_986[dm_build_1007.dm_build_987+dm_build_1008]
  190. }