efficient_join 2.1.3 → 2.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5901b92dc6e259cbf76193da6107a3c3dde02c6dddcf66812e9d449322eae6fc
4
- data.tar.gz: d9f11fbf636346979abc3654cdfb1e7518b9891532732905404ab2ca08e4617c
3
+ metadata.gz: d76d30fa5be5263c9d28faa2cb320dc4a3c61d9baf1fbefcc7cab69564bdc1cf
4
+ data.tar.gz: 7f4a5598aa3ed81761842bdaf0f92614c33108ecda16617453284fee1e4848d0
5
5
  SHA512:
6
- metadata.gz: f7d39e4ad25fb936ab6213e8d582f2bd9fd3e2a53bf7f24c33452839e473dc984773b8998d880db1a89d602ddd4fc9d45e47eafc39d202b579fad234a2231b8a
7
- data.tar.gz: 0c90ce377ad5ed1bd0483cdaaef14702bd743005052833d120f9c813445ff2b92fbfdd204aed18c0576e8b05fb359e6b1e3515b3a9fbdf43c5d35ea12548e85f
6
+ metadata.gz: f546d93a65ee3158bc1ff764d6b9af90b37250ce25eff8dbc44928720a48eee0b7a3c1a3606efd809fddea0fe6e0df205b224e11114f135ddf8f065aa60fea44
7
+ data.tar.gz: b76e0dd48ba2100e0d2903852ded4242a2adcebec7273b8c6ac72d1c9c87f1e91c6cccee5a45063c1b4a81b0231c4a1566285cd3a4214bec2a2a9cb9ec9b2378
@@ -18,15 +18,15 @@ static void strbuf_free(struct strbuf_t *strbuf) {
18
18
  free(strbuf->buf);
19
19
  }
20
20
 
21
- static inline void strbuf_expand(struct strbuf_t *strbuf) {
22
- strbuf->buf = (char *)realloc(strbuf->buf, strbuf->len * 2);
21
+ static inline void strbuf_expand(struct strbuf_t *strbuf, size_t min_size) {
22
+ strbuf->buf = (char *)realloc(strbuf->buf, min_size > strbuf->len * 2 ? min_size : strbuf->len * 2);
23
23
  strbuf->len *= 2;
24
24
  }
25
25
 
26
26
  static inline void strbuf_write_str(struct strbuf_t *strbuf, const char *str, size_t len)
27
27
  {
28
28
  if (strbuf->len < strbuf->pos + len) {
29
- strbuf_expand(strbuf);
29
+ strbuf_expand(strbuf, strbuf->pos + len);
30
30
  }
31
31
 
32
32
  memcpy(strbuf->buf + strbuf->pos, str, len);
@@ -39,7 +39,7 @@ static inline void strbuf_write_int64(struct strbuf_t *strbuf, int64_t value)
39
39
 
40
40
  // 22: maximum length of string representation of 64-bit int
41
41
  if (strbuf->len <= strbuf->pos + 22) {
42
- strbuf_expand(strbuf);
42
+ strbuf_expand(strbuf, strbuf->pos + 22);
43
43
  }
44
44
 
45
45
  bytes_written = snprintf(strbuf->buf + strbuf->pos, 22, "%ld", value);
@@ -1,3 +1,3 @@
1
1
  module EfficientJoin
2
- VERSION = "2.1.3"
2
+ VERSION = "2.1.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: efficient_join
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.3
4
+ version: 2.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Morton