1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2025-07-27 17:28:34 +00:00
forgejo/modules/util
oliverpool 31ad7c9353 blob: GetBlobContent: reduce allocations (#8223)
See #8222 for context.

## git.Blob.NewTruncatedReader

This introduce a new `NewTruncatedReader` method to return a blob-reader which silently truncates when the limit is reached (io.EOF will be returned).
Since the actual size is also returned `GetBlobContent` can pre-allocate a `[]byte` of the full-size (min of the asked size and the actual size) and call `io.ReadFull(rc, buf)` (instead of `util.ReadWithLimit(dataRc, int(limit))` which is convoluted and not used anywhere else).

### Tests

- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.

### Documentation

- [x] I did not document these changes and I do not expect someone else to do it.

### Release notes

- [x] I do not want this change to show in the release notes.

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8223
Reviewed-by: Lucas <sclu1034@noreply.codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: oliverpool <git@olivier.pfad.fr>
Co-committed-by: oliverpool <git@olivier.pfad.fr>
2025-06-19 18:36:12 +02:00
..
filebuffer Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
rotatingfilewriter chore: branding import path (#7337) 2025-03-27 19:40:14 +00:00
color.go [PORT] gitea##30237: Fix and rewrite contrast color calculation, fix project-related bugs 2024-04-15 16:11:34 +02:00
color_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
error.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
file_unix.go Drop SSPI auth support and more Windows files (#7148) 2025-03-08 00:43:41 +00:00
file_unix_test.go Drop SSPI auth support and more Windows files (#7148) 2025-03-08 00:43:41 +00:00
io.go blob: GetBlobContent: reduce allocations (#8223) 2025-06-19 18:36:12 +02:00
keypair.go Enable unparam linter (#31277) 2024-06-16 13:42:58 +02:00
keypair_test.go test: fix test linting 2024-11-11 12:44:36 +01:00
legacy.go [DEADCODE] Add deadcode linter 2024-02-05 14:45:09 +01:00
legacy_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
pack.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
pack_test.go Add testifylint to lint checks (#4535) 2024-07-30 19:41:10 +00:00
paginate.go Replace interface{} with any (#25686) 2023-07-04 18:36:08 +00:00
paginate_test.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
path.go Update module github.com/golangci/golangci-lint/cmd/golangci-lint to v2 (forgejo) (#7367) 2025-03-28 22:22:21 +00:00
path_test.go Drop SSPI auth support and more Windows files (#7148) 2025-03-08 00:43:41 +00:00
remove.go Drop SSPI auth support and more Windows files (#7148) 2025-03-08 00:43:41 +00:00
sanitize.go Refactor to use UnsafeStringToBytes (#31358) 2024-06-16 13:42:58 +02:00
sanitize_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sec_to_time.go Store and use seconds for timeline time comments (#25392) 2023-06-23 12:12:39 +00:00
sec_to_time_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
shellquote.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
shellquote_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
slice.go chore: teach set module about iter.Seq (#6676) 2025-01-24 16:45:46 +00:00
slice_test.go Replace util.SliceXxx with slices.Xxx (#26958) 2023-09-07 09:37:47 +00:00
string.go Refactor to use UnsafeStringToBytes (#31358) 2024-06-16 13:42:58 +02:00
string_test.go Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
timer.go Rewrite queue (#24505) 2023-05-08 19:49:59 +08:00
timer_test.go Use a general approach to access custom/static/builtin assets (#24022) 2023-04-12 18:16:45 +08:00
truncate.go [gitea] week 2025-22 cherry pick (gitea/main -> forgejo) (#8198) 2025-06-17 18:28:07 +02:00
truncate_test.go [gitea] week 2025-22 cherry pick (gitea/main -> forgejo) (#8198) 2025-06-17 18:28:07 +02:00
url.go Add RemoteAddress to mirrors (#26952) 2023-09-16 16:03:02 +00:00
util.go chore(sec): unify usage of crypto/rand.Read (#7453) 2025-04-04 03:31:37 +00:00
util_test.go chore(sec): unify usage of crypto/rand.Read (#7453) 2025-04-04 03:31:37 +00:00