File tree Expand file tree Collapse file tree 1 file changed +18
-8
lines changed Expand file tree Collapse file tree 1 file changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -343,14 +343,24 @@ def concat(other)
343
343
%s(do
344
344
(assign ro (callm other __get_raw))
345
345
(assign osize (strlen ro))
346
- (assign bsize (strlen @buffer))
347
- (assign size (add bsize osize))
348
- (assign size (add size 1))
349
- (assign newb (__alloc_leaf size))
350
- (strcpy newb @buffer)
351
- (strcat newb ro)
352
- (assign @buffer newb)
353
- )
346
+ (if (ge osize 1) (do
347
+ (assign bsize (strlen @buffer))
348
+ (assign size (add bsize osize))
349
+ (assign @length size)
350
+ (assign size (add size 1))
351
+ (if (gt size @capacity) (do
352
+ (assign @capacity (add size 8))
353
+ (assign newb (__stralloc @capacity))
354
+ (strcpy newb @buffer)
355
+ (strcat newb ro)
356
+ (assign @buffer newb)
357
+ )
358
+ (do
359
+ (strcat @buffer ro)
360
+ )
361
+ )
362
+ ))
363
+ )
354
364
self
355
365
end
356
366
You can’t perform that action at this time.
0 commit comments