This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new 2fd50f7c Update dist/ for commit
3540b8578bd78fc77787babe06b9931e2634d600
2fd50f7c is described below
commit 2fd50f7c3a87eddf951a3904e442475665bed414
Author: GitHub Actions <[email protected]>
AuthorDate: Wed Jun 12 01:31:04 2024 +0000
Update dist/ for commit 3540b8578bd78fc77787babe06b9931e2634d600
---
dist/nanoarrow.c | 38 +++++++++++++++++++++-----------------
dist/nanoarrow.hpp | 2 +-
2 files changed, 22 insertions(+), 18 deletions(-)
diff --git a/dist/nanoarrow.c b/dist/nanoarrow.c
index c4897cfa..0c5e2492 100644
--- a/dist/nanoarrow.c
+++ b/dist/nanoarrow.c
@@ -3163,6 +3163,7 @@ static int ArrowArrayViewValidateDefault(struct
ArrowArrayView* array_view,
case NANOARROW_TYPE_RUN_END_ENCODED: {
struct ArrowArrayView* run_ends_view = array_view->children[0];
+ if (run_ends_view->length == 0) break;
int64_t last_run_end = ArrowArrayViewGetIntUnsafe(run_ends_view, 0);
if (last_run_end < 1) {
ArrowErrorSet(error,
@@ -3342,25 +3343,28 @@ static int ArrowArrayViewValidateFull(struct
ArrowArrayView* array_view,
if (array_view->storage_type == NANOARROW_TYPE_RUN_END_ENCODED) {
struct ArrowArrayView* run_ends_view = array_view->children[0];
- int64_t last_run_end = ArrowArrayViewGetIntUnsafe(run_ends_view, 0);
- for (int64_t i = 1; i < run_ends_view->length; i++) {
- const int64_t run_end = ArrowArrayViewGetIntUnsafe(run_ends_view, i);
- if (run_end <= last_run_end) {
- ArrowErrorSet(error,
- "Every run end must be strictly greater than the
previous run end, "
- "but run_ends[%ld] is %ld and run_ends[%ld] is %ld",
- (long)i, (long)run_end, (long)i - 1, (long)last_run_end);
+ if (run_ends_view->length > 0) {
+ int64_t last_run_end = ArrowArrayViewGetIntUnsafe(run_ends_view, 0);
+ for (int64_t i = 1; i < run_ends_view->length; i++) {
+ const int64_t run_end = ArrowArrayViewGetIntUnsafe(run_ends_view, i);
+ if (run_end <= last_run_end) {
+ ArrowErrorSet(
+ error,
+ "Every run end must be strictly greater than the previous run
end, "
+ "but run_ends[%ld] is %ld and run_ends[%ld] is %ld",
+ (long)i, (long)run_end, (long)i - 1, (long)last_run_end);
+ return EINVAL;
+ }
+ last_run_end = run_end;
+ }
+ last_run_end = ArrowArrayViewGetIntUnsafe(run_ends_view,
run_ends_view->length - 1);
+ if (last_run_end < (array_view->offset + array_view->length)) {
+ ArrowErrorSet(
+ error, "Last run end is %ld but it should >= %ld (offset: %ld,
length: %ld)",
+ (long)last_run_end, (long)(array_view->offset +
array_view->length),
+ (long)array_view->offset, (long)array_view->length);
return EINVAL;
}
- last_run_end = run_end;
- }
- last_run_end = ArrowArrayViewGetIntUnsafe(run_ends_view,
run_ends_view->length - 1);
- if (last_run_end < (array_view->offset + array_view->length)) {
- ArrowErrorSet(error,
- "Last run end is %ld but it should >= %ld (offset: %ld,
length: %ld)",
- (long)last_run_end, (long)(array_view->offset +
array_view->length),
- (long)array_view->offset, (long)array_view->length);
- return EINVAL;
}
}
diff --git a/dist/nanoarrow.hpp b/dist/nanoarrow.hpp
index 0de2371b..5f8aabba 100644
--- a/dist/nanoarrow.hpp
+++ b/dist/nanoarrow.hpp
@@ -864,8 +864,8 @@ class ViewArrayStream {
};
internal::InputRange<Next> range_;
- ArrowError* error_;
ArrowErrorCode* code_;
+ ArrowError* error_;
ArrowError internal_error_ = {};
ArrowErrorCode internal_code_;
bool code_was_accessed_ = false;