Coverage Report

Created: 2026-04-01 07:24

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libjxl/lib/jxl/base/status.h
Line
Count
Source
1
// Copyright (c) the JPEG XL Project Authors. All rights reserved.
2
//
3
// Use of this source code is governed by a BSD-style
4
// license that can be found in the LICENSE file.
5
6
#ifndef LIB_JXL_BASE_STATUS_H_
7
#define LIB_JXL_BASE_STATUS_H_
8
9
// Error handling: Status return type + helper macros.
10
11
#include <cstdarg>
12
#include <cstdint>
13
#include <cstdio>
14
#include <cstdlib>
15
#include <type_traits>
16
#include <utility>
17
18
#include "lib/jxl/base/common.h"
19
#include "lib/jxl/base/compiler_specific.h"
20
21
namespace jxl {
22
23
// The Verbose level for the library
24
#ifndef JXL_DEBUG_V_LEVEL
25
59.3k
#define JXL_DEBUG_V_LEVEL 0
26
#endif  // JXL_DEBUG_V_LEVEL
27
28
#ifdef USE_ANDROID_LOGGER
29
#include <android/log.h>
30
#define LIBJXL_ANDROID_LOG_TAG ("libjxl")
31
inline void android_vprintf(const char* format, va_list args) {
32
  char* message = nullptr;
33
  int res = vasprintf(&message, format, args);
34
  if (res != -1) {
35
    __android_log_write(ANDROID_LOG_DEBUG, LIBJXL_ANDROID_LOG_TAG, message);
36
    free(message);
37
  }
38
}
39
#endif
40
41
// Print a debug message on standard error or android logs. You should use the
42
// JXL_DEBUG macro instead of calling Debug directly. This function returns
43
// false, so it can be used as a return value in JXL_FAILURE.
44
JXL_FORMAT(1, 2)
45
0
inline JXL_NOINLINE bool Debug(const char* format, ...) {
46
0
  va_list args;
47
0
  va_start(args, format);
48
#ifdef USE_ANDROID_LOGGER
49
  android_vprintf(format, args);
50
#else
51
0
  vfprintf(stderr, format, args);
52
0
#endif
53
0
  va_end(args);
54
0
  return false;
55
0
}
56
57
// Print a debug message on standard error if "enabled" is true. "enabled" is
58
// normally a macro that evaluates to 0 or 1 at compile time, so the Debug
59
// function is never called and optimized out in release builds. Note that the
60
// arguments are compiled but not evaluated when enabled is false. The format
61
// string must be a explicit string in the call, for example:
62
//   JXL_DEBUG(JXL_DEBUG_MYMODULE, "my module message: %d", some_var);
63
// Add a header at the top of your module's .cc or .h file (depending on whether
64
// you have JXL_DEBUG calls from the .h as well) like this:
65
//   #ifndef JXL_DEBUG_MYMODULE
66
//   #define JXL_DEBUG_MYMODULE 0
67
//   #endif JXL_DEBUG_MYMODULE
68
#define JXL_DEBUG_TMP(format, ...) \
69
0
  ::jxl::Debug(("%s:%d: " format "\n"), __FILE__, __LINE__, ##__VA_ARGS__)
70
71
#define JXL_DEBUG(enabled, format, ...)     \
72
7.83k
  do {                                      \
73
7.83k
    if (enabled) {                          \
74
0
      JXL_DEBUG_TMP(format, ##__VA_ARGS__); \
75
0
    }                                       \
76
7.83k
  } while (0)
77
78
// JXL_DEBUG version that prints the debug message if the global verbose level
79
// defined at compile time by JXL_DEBUG_V_LEVEL is greater or equal than the
80
// passed level.
81
#if JXL_DEBUG_V_LEVEL > 0
82
#define JXL_DEBUG_V(level, format, ...) \
83
  JXL_DEBUG(level <= JXL_DEBUG_V_LEVEL, format, ##__VA_ARGS__)
84
#else
85
#define JXL_DEBUG_V(level, format, ...)
86
#endif
87
88
#define JXL_WARNING(format, ...) \
89
7.83k
  JXL_DEBUG(JXL_IS_DEBUG_BUILD, format, ##__VA_ARGS__)
90
91
#if JXL_IS_DEBUG_BUILD
92
// Exits the program after printing a stack trace when possible.
93
JXL_NORETURN inline JXL_NOINLINE bool Abort() {
94
  JXL_PRINT_STACK_TRACE();
95
  JXL_CRASH();
96
}
97
#endif
98
99
#if JXL_IS_DEBUG_BUILD
100
#define JXL_DEBUG_ABORT(format, ...)                                   \
101
  do {                                                                 \
102
    if (JXL_DEBUG_ON_ABORT) {                                          \
103
      ::jxl::Debug(("%s:%d: JXL_DEBUG_ABORT: " format "\n"), __FILE__, \
104
                   __LINE__, ##__VA_ARGS__);                           \
105
    }                                                                  \
106
    ::jxl::Abort();                                                    \
107
  } while (0);
108
#else
109
#define JXL_DEBUG_ABORT(format, ...)
110
#endif
111
112
// Use this for code paths that are unreachable unless the code would change
113
// to make it reachable, in which case it will print a warning and abort in
114
// debug builds. In release builds no code is produced for this, so only use
115
// this if this path is really unreachable.
116
#if JXL_IS_DEBUG_BUILD
117
#define JXL_UNREACHABLE(format, ...)                                          \
118
  (::jxl::Debug(("%s:%d: JXL_UNREACHABLE: " format "\n"), __FILE__, __LINE__, \
119
                ##__VA_ARGS__),                                               \
120
   ::jxl::Abort(), JXL_FAILURE(format, ##__VA_ARGS__))
121
#else  // JXL_IS_DEBUG_BUILD
122
#define JXL_UNREACHABLE(format, ...) \
123
0
  JXL_FAILURE("internal: " format, ##__VA_ARGS__)
124
#endif
125
126
// Only runs in debug builds (builds where NDEBUG is not
127
// defined). This is useful for slower asserts that we want to run more rarely
128
// than usual. These will run on asan, msan and other debug builds, but not in
129
// opt or release.
130
#if JXL_IS_DEBUG_BUILD
131
#define JXL_DASSERT(condition)                                      \
132
  do {                                                              \
133
    if (!(condition)) {                                             \
134
      JXL_DEBUG(JXL_DEBUG_ON_ABORT, "JXL_DASSERT: %s", #condition); \
135
      ::jxl::Abort();                                               \
136
    }                                                               \
137
  } while (0)
138
#else
139
#define JXL_DASSERT(condition)
140
#endif
141
142
// A jxl::Status value from a StatusCode or Status which prints a debug message
143
// when enabled.
144
#define JXL_STATUS(status, format, ...)                                        \
145
16.5k
  ::jxl::StatusMessage(::jxl::Status(status), "%s:%d: " format "\n", __FILE__, \
146
16.5k
                       __LINE__, ##__VA_ARGS__)
147
148
// Notify of an error but discard the resulting Status value. This is only
149
// useful for debug builds or when building with JXL_CRASH_ON_ERROR.
150
#define JXL_NOTIFY_ERROR(format, ...)                                      \
151
0
  (void)JXL_STATUS(::jxl::StatusCode::kGenericError, "JXL_ERROR: " format, \
152
0
                   ##__VA_ARGS__)
153
154
// An error Status with a message. The JXL_STATUS() macro will return a Status
155
// object with a kGenericError/kUnsupported/kNotEnoughBytes code, but the comma
156
// operator helps with clang-tidy inference and potentially with optimizations.
157
#define JXL_FAILURE(format, ...)                                              \
158
699
  ((void)JXL_STATUS(::jxl::StatusCode::kGenericError, "JXL_FAILURE: " format, \
159
699
                    ##__VA_ARGS__),                                           \
160
699
   ::jxl::Status(::jxl::StatusCode::kGenericError))
161
#define JXL_UNSUPPORTED(format, ...)                            \
162
0
  ((void)JXL_STATUS(::jxl::StatusCode::kUnsupported,            \
163
0
                    "JXL_UNSUPPORTED: " format, ##__VA_ARGS__), \
164
0
   ::jxl::Status(::jxl::StatusCode::kUnsupported))
165
#define JXL_NOT_ENOUGH_BYTES(format, ...)                            \
166
15.8k
  ((void)JXL_STATUS(::jxl::StatusCode::kNotEnoughBytes,              \
167
15.8k
                    "JXL_NOT_ENOUGH_BYTES: " format, ##__VA_ARGS__), \
168
15.8k
   ::jxl::Status(::jxl::StatusCode::kNotEnoughBytes))
169
170
// Always evaluates the status exactly once, so can be used for non-debug calls.
171
// Returns from the current context if the passed Status expression is an error
172
// (fatal or non-fatal). The return value is the passed Status.
173
#define JXL_RETURN_IF_ERROR(status)                                       \
174
145M
  do {                                                                    \
175
145M
    ::jxl::Status jxl_return_if_error_status = (status);                  \
Unexecuted instantiation: encode.cc:JxlEncoder::ProcessOneEnqueuedInput()::$_0::operator()() const
Unexecuted instantiation: enc_fields.cc:jxl::WriteCodestreamHeaders(jxl::CodecMetadata*, jxl::BitWriter*, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeGroups(jxl::FrameHeader const&, jxl::PassesEncoderState*, jxl::ModularFrameEncoder*, jxl::ThreadPool*, std::__1::vector<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> >, std::__1::allocator<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > > >*, jxl::AuxOut*)::$_0::operator()(unsigned int, unsigned long) const::{lambda()#1}::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeGroups(jxl::FrameHeader const&, jxl::PassesEncoderState*, jxl::ModularFrameEncoder*, jxl::ThreadPool*, std::__1::vector<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> >, std::__1::allocator<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > > >*, jxl::AuxOut*)::$_0::operator()(unsigned int, unsigned long) const::{lambda()#2}::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeGlobalACInfo(jxl::PassesEncoderState*, jxl::BitWriter*, jxl::ModularFrameEncoder*, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeGlobalACInfo(jxl::PassesEncoderState*, jxl::BitWriter*, jxl::ModularFrameEncoder*, jxl::AuxOut*)::$_1::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeGroups(jxl::FrameHeader const&, jxl::PassesEncoderState*, jxl::ModularFrameEncoder*, jxl::ThreadPool*, std::__1::vector<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> >, std::__1::allocator<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > > >*, jxl::AuxOut*)::$_1::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeFrameStreaming(JxlMemoryManagerStruct*, jxl::CompressParams const&, jxl::FrameInfo const&, jxl::CodecMetadata const*, jxl::JxlEncoderChunkedFrameAdapter&, bool, JxlCmsInterface const&, jxl::ThreadPool*, JxlEncoderOutputProcessorWrapper*, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::OutputAcGlobal(jxl::PassesEncoderState&, jxl::FrameDimensions const&, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::OutputAcGlobal(jxl::PassesEncoderState&, jxl::FrameDimensions const&, jxl::AuxOut*)::$_1::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::OutputAcGlobal(jxl::PassesEncoderState&, jxl::FrameDimensions const&, jxl::AuxOut*)::$_2::operator()() const
Unexecuted instantiation: enc_frame.cc:jxl::(anonymous namespace)::EncodeTOC(JxlMemoryManagerStruct*, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> > const&, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_group.cc:jxl::EncodeGroupTokenizedCoefficients(unsigned long, unsigned long, unsigned long, jxl::PassesEncoderState const&, jxl::BitWriter*, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_icc_codec.cc:jxl::WriteICC(jxl::Span<unsigned char const>, jxl::BitWriter*, jxl::LayerType, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_modular.cc:jxl::ModularFrameEncoder::EncodeGlobalInfo(bool, jxl::BitWriter*, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_ans.cc:jxl::BuildAndEncodeHistograms(JxlMemoryManagerStruct*, jxl::HistogramParams const&, unsigned long, std::__1::vector<std::__1::vector<jxl::Token, std::__1::allocator<jxl::Token> >, std::__1::allocator<std::__1::vector<jxl::Token, std::__1::allocator<jxl::Token> > > >&, jxl::EntropyEncodingData*, jxl::BitWriter*, jxl::LayerType, jxl::AuxOut*)::$_0::operator()() const::{lambda()#1}::operator()() const
Unexecuted instantiation: enc_ans.cc:jxl::EntropyEncodingData::BuildAndStoreANSEncodingData(JxlMemoryManagerStruct*, jxl::HistogramParams::ANSHistogramStrategy, jxl::Histogram const&, jxl::BitWriter*)::$_0::operator()() const
Unexecuted instantiation: enc_context_map.cc:jxl::EncodeContextMap(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&, unsigned long, jxl::BitWriter*, jxl::LayerType, jxl::AuxOut*)::$_0::operator()() const
Unexecuted instantiation: enc_context_map.cc:jxl::EncodeContextMap(std::__1::vector<unsigned char, std::__1::allocator<unsigned char> > const&, unsigned long, jxl::BitWriter*, jxl::LayerType, jxl::AuxOut*)::$_1::operator()() const
176
145M
    if (!jxl_return_if_error_status) {                                    \
177
10.0k
      (void)::jxl::StatusMessage(                                         \
178
10.0k
          jxl_return_if_error_status,                                     \
179
10.0k
          "%s:%d: JXL_RETURN_IF_ERROR code=%d: %s\n", __FILE__, __LINE__, \
180
10.0k
          static_cast<int>(jxl_return_if_error_status.code()), #status);  \
181
10.0k
      return jxl_return_if_error_status;                                  \
182
10.0k
    }                                                                     \
183
145M
  } while (0)
184
185
// As above, but without calling StatusMessage. Intended for bundles (see
186
// fields.h), which have numerous call sites (-> relevant for code size) and do
187
// not want to generate excessive messages when decoding partial headers.
188
#define JXL_QUIET_RETURN_IF_ERROR(status)                \
189
23.0M
  do {                                                   \
190
23.0M
    ::jxl::Status jxl_return_if_error_status = (status); \
191
23.0M
    if (!jxl_return_if_error_status) {                   \
192
10.8k
      return jxl_return_if_error_status;                 \
193
10.8k
    }                                                    \
194
23.0M
  } while (0)
195
196
#if JXL_IS_DEBUG_BUILD
197
// Debug: fatal check.
198
#define JXL_ENSURE(condition)                     \
199
  do {                                            \
200
    if (!(condition)) {                           \
201
      ::jxl::Debug("JXL_ENSURE: %s", #condition); \
202
      ::jxl::Abort();                             \
203
    }                                             \
204
  } while (0)
205
#else
206
// Release: non-fatal check of condition. If false, just return an error.
207
#define JXL_ENSURE(condition)                           \
208
233M
  do {                                                  \
209
233M
    if (!(condition)) {                                 \
210
0
      return JXL_FAILURE("JXL_ENSURE: %s", #condition); \
211
0
    }                                                   \
212
233M
  } while (0)
213
#endif
214
215
enum class StatusCode : int32_t {
216
  // Non-fatal errors (negative values).
217
  kNotEnoughBytes = -1,
218
219
  // The only non-error status code.
220
  kOk = 0,
221
222
  // Fatal-errors (positive values)
223
  kGenericError = 1,
224
  kUnsupported = 2,
225
};
226
227
// Drop-in replacement for bool that raises compiler warnings if not used
228
// after being returned from a function. Example:
229
// Status LoadFile(...) { return true; } is more compact than
230
// bool JXL_MUST_USE_RESULT LoadFile(...) { return true; }
231
// In case of error, the status can carry an extra error code in its value which
232
// is split between fatal and non-fatal error codes.
233
class JXL_MUST_USE_RESULT Status {
234
 public:
235
  // We want implicit constructor from bool to allow returning "true" or "false"
236
  // on a function when using Status. "true" means kOk while "false" means a
237
  // generic fatal error.
238
  // NOLINTNEXTLINE(google-explicit-constructor)
239
  constexpr Status(bool ok)
240
127M
      : code_(ok ? StatusCode::kOk : StatusCode::kGenericError) {}
241
242
  // NOLINTNEXTLINE(google-explicit-constructor)
243
56.8M
  constexpr Status(StatusCode code) : code_(code) {}
244
245
  // We also want implicit cast to bool to check for return values of functions.
246
  // NOLINTNEXTLINE(google-explicit-constructor)
247
186M
  constexpr operator bool() const { return code_ == StatusCode::kOk; }
248
249
112k
  constexpr StatusCode code() const { return code_; }
250
251
  // Returns whether the status code is a fatal error.
252
105k
  constexpr bool IsFatalError() const {
253
105k
    return static_cast<int32_t>(code_) > 0;
254
105k
  }
255
256
 private:
257
  StatusCode code_;
258
};
259
260
0
static constexpr Status OkStatus() { return Status(StatusCode::kOk); }
Unexecuted instantiation: encode.cc:jxl::OkStatus()
Unexecuted instantiation: enc_jpeg_data.cc:jxl::OkStatus()
Unexecuted instantiation: enc_jpeg_data_reader.cc:jxl::OkStatus()
Unexecuted instantiation: enc_jpeg_huffman_decode.cc:jxl::OkStatus()
Unexecuted instantiation: color_encoding_internal.cc:jxl::OkStatus()
Unexecuted instantiation: decode.cc:jxl::OkStatus()
Unexecuted instantiation: fields.cc:jxl::OkStatus()
Unexecuted instantiation: frame_header.cc:jxl::OkStatus()
Unexecuted instantiation: headers.cc:jxl::OkStatus()
Unexecuted instantiation: icc_codec.cc:jxl::OkStatus()
Unexecuted instantiation: icc_codec_common.cc:jxl::OkStatus()
Unexecuted instantiation: image_metadata.cc:jxl::OkStatus()
Unexecuted instantiation: loop_filter.cc:jxl::OkStatus()
Unexecuted instantiation: luminance.cc:jxl::OkStatus()
Unexecuted instantiation: memory_manager_internal.cc:jxl::OkStatus()
Unexecuted instantiation: encoding.cc:jxl::OkStatus()
Unexecuted instantiation: modular_image.cc:jxl::OkStatus()
Unexecuted instantiation: squeeze_params.cc:jxl::OkStatus()
Unexecuted instantiation: transform.cc:jxl::OkStatus()
Unexecuted instantiation: quant_weights.cc:jxl::OkStatus()
Unexecuted instantiation: quantizer.cc:jxl::OkStatus()
Unexecuted instantiation: decode_to_jpeg.cc:jxl::OkStatus()
Unexecuted instantiation: dec_jpeg_data.cc:jxl::OkStatus()
Unexecuted instantiation: dec_jpeg_data_writer.cc:jxl::OkStatus()
Unexecuted instantiation: jpeg_data.cc:jxl::OkStatus()
Unexecuted instantiation: enc_aux_out.cc:jxl::OkStatus()
Unexecuted instantiation: enc_bit_writer.cc:jxl::OkStatus()
Unexecuted instantiation: enc_fast_lossless.cc:jxl::OkStatus()
Unexecuted instantiation: enc_fields.cc:jxl::OkStatus()
Unexecuted instantiation: enc_frame.cc:jxl::OkStatus()
Unexecuted instantiation: enc_group.cc:jxl::OkStatus()
Unexecuted instantiation: enc_heuristics.cc:jxl::OkStatus()
Unexecuted instantiation: enc_icc_codec.cc:jxl::OkStatus()
Unexecuted instantiation: enc_modular.cc:jxl::OkStatus()
Unexecuted instantiation: enc_modular_simd.cc:jxl::OkStatus()
Unexecuted instantiation: enc_noise.cc:jxl::OkStatus()
Unexecuted instantiation: enc_patch_dictionary.cc:jxl::OkStatus()
Unexecuted instantiation: enc_photon_noise.cc:jxl::OkStatus()
Unexecuted instantiation: enc_progressive_split.cc:jxl::OkStatus()
Unexecuted instantiation: enc_quant_weights.cc:jxl::OkStatus()
Unexecuted instantiation: enc_splines.cc:jxl::OkStatus()
Unexecuted instantiation: enc_toc.cc:jxl::OkStatus()
Unexecuted instantiation: enc_xyb.cc:jxl::OkStatus()
Unexecuted instantiation: enc_encoding.cc:jxl::OkStatus()
Unexecuted instantiation: enc_ma.cc:jxl::OkStatus()
Unexecuted instantiation: enc_rct.cc:jxl::OkStatus()
Unexecuted instantiation: enc_transform.cc:jxl::OkStatus()
Unexecuted instantiation: ac_strategy.cc:jxl::OkStatus()
Unexecuted instantiation: chroma_from_luma.cc:jxl::OkStatus()
Unexecuted instantiation: compressed_dc.cc:jxl::OkStatus()
Unexecuted instantiation: dec_ans.cc:jxl::OkStatus()
Unexecuted instantiation: dec_bit_reader.cc:jxl::OkStatus()
Unexecuted instantiation: dec_cache.cc:jxl::OkStatus()
Unexecuted instantiation: dec_context_map.cc:jxl::OkStatus()
Unexecuted instantiation: dec_external_image.cc:jxl::OkStatus()
Unexecuted instantiation: dec_frame.cc:jxl::OkStatus()
Unexecuted instantiation: dec_group.cc:jxl::OkStatus()
Unexecuted instantiation: dec_huffman.cc:jxl::OkStatus()
Unexecuted instantiation: dec_modular.cc:jxl::OkStatus()
Unexecuted instantiation: dec_noise.cc:jxl::OkStatus()
Unexecuted instantiation: dec_patch_dictionary.cc:jxl::OkStatus()
Unexecuted instantiation: dec_xyb.cc:jxl::OkStatus()
Unexecuted instantiation: entropy_coder.cc:jxl::OkStatus()
Unexecuted instantiation: epf.cc:jxl::OkStatus()
Unexecuted instantiation: image.cc:jxl::OkStatus()
Unexecuted instantiation: image_bundle.cc:jxl::OkStatus()
Unexecuted instantiation: image_ops.cc:jxl::OkStatus()
Unexecuted instantiation: dec_ma.cc:jxl::OkStatus()
Unexecuted instantiation: palette.cc:jxl::OkStatus()
Unexecuted instantiation: rct.cc:jxl::OkStatus()
Unexecuted instantiation: squeeze.cc:jxl::OkStatus()
Unexecuted instantiation: opsin_params.cc:jxl::OkStatus()
Unexecuted instantiation: passes_state.cc:jxl::OkStatus()
Unexecuted instantiation: render_pipeline.cc:jxl::OkStatus()
Unexecuted instantiation: simple_render_pipeline.cc:jxl::OkStatus()
Unexecuted instantiation: stage_blending.cc:jxl::OkStatus()
Unexecuted instantiation: stage_chroma_upsampling.cc:jxl::OkStatus()
Unexecuted instantiation: stage_cms.cc:jxl::OkStatus()
Unexecuted instantiation: stage_epf.cc:jxl::OkStatus()
Unexecuted instantiation: stage_from_linear.cc:jxl::OkStatus()
Unexecuted instantiation: stage_gaborish.cc:jxl::OkStatus()
Unexecuted instantiation: stage_noise.cc:jxl::OkStatus()
Unexecuted instantiation: stage_patches.cc:jxl::OkStatus()
Unexecuted instantiation: stage_splines.cc:jxl::OkStatus()
Unexecuted instantiation: stage_spot.cc:jxl::OkStatus()
Unexecuted instantiation: stage_to_linear.cc:jxl::OkStatus()
Unexecuted instantiation: stage_tone_mapping.cc:jxl::OkStatus()
Unexecuted instantiation: stage_upsampling.cc:jxl::OkStatus()
Unexecuted instantiation: stage_write.cc:jxl::OkStatus()
Unexecuted instantiation: stage_xyb.cc:jxl::OkStatus()
Unexecuted instantiation: stage_ycbcr.cc:jxl::OkStatus()
Unexecuted instantiation: splines.cc:jxl::OkStatus()
Unexecuted instantiation: toc.cc:jxl::OkStatus()
Unexecuted instantiation: butteraugli.cc:jxl::OkStatus()
Unexecuted instantiation: enc_ac_strategy.cc:jxl::OkStatus()
Unexecuted instantiation: enc_adaptive_quantization.cc:jxl::OkStatus()
Unexecuted instantiation: enc_ans.cc:jxl::OkStatus()
Unexecuted instantiation: enc_ans_simd.cc:jxl::OkStatus()
Unexecuted instantiation: enc_butteraugli_comparator.cc:jxl::OkStatus()
Unexecuted instantiation: enc_cache.cc:jxl::OkStatus()
Unexecuted instantiation: enc_chroma_from_luma.cc:jxl::OkStatus()
Unexecuted instantiation: enc_cluster.cc:jxl::OkStatus()
Unexecuted instantiation: enc_coeff_order.cc:jxl::OkStatus()
Unexecuted instantiation: enc_context_map.cc:jxl::OkStatus()
Unexecuted instantiation: enc_convolve_separable5.cc:jxl::OkStatus()
Unexecuted instantiation: enc_debug_image.cc:jxl::OkStatus()
Unexecuted instantiation: enc_dot_dictionary.cc:jxl::OkStatus()
Unexecuted instantiation: enc_entropy_coder.cc:jxl::OkStatus()
Unexecuted instantiation: enc_external_image.cc:jxl::OkStatus()
Unexecuted instantiation: enc_gaborish.cc:jxl::OkStatus()
Unexecuted instantiation: enc_huffman.cc:jxl::OkStatus()
Unexecuted instantiation: enc_huffman_tree.cc:jxl::OkStatus()
Unexecuted instantiation: enc_image_bundle.cc:jxl::OkStatus()
Unexecuted instantiation: enc_lz77.cc:jxl::OkStatus()
Unexecuted instantiation: enc_palette.cc:jxl::OkStatus()
Unexecuted instantiation: enc_squeeze.cc:jxl::OkStatus()
Unexecuted instantiation: ans_common.cc:jxl::OkStatus()
Unexecuted instantiation: blending.cc:jxl::OkStatus()
Unexecuted instantiation: coeff_order.cc:jxl::OkStatus()
Unexecuted instantiation: convolve_slow.cc:jxl::OkStatus()
Unexecuted instantiation: convolve_symmetric5.cc:jxl::OkStatus()
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::OkStatus()
Unexecuted instantiation: render_pipeline_stage.cc:jxl::OkStatus()
Unexecuted instantiation: enc_detect_dots.cc:jxl::OkStatus()
Unexecuted instantiation: enc_linalg.cc:jxl::OkStatus()
Unexecuted instantiation: dec_group_border.cc:jxl::OkStatus()
Unexecuted instantiation: jxl_cms.cc:jxl::OkStatus()
261
262
// Helper function to create a Status and print the debug message or abort when
263
// needed.
264
inline JXL_FORMAT(2, 3) Status
265
26.5k
    StatusMessage(const Status status, const char* format, ...) {
266
  // This block will be optimized out when JXL_IS_DEBUG_BUILD is disabled.
267
26.5k
  if ((JXL_IS_DEBUG_BUILD && status.IsFatalError()) ||
268
0
      (JXL_DEBUG_ON_ALL_ERROR && !status)) {
269
0
    va_list args;
270
0
    va_start(args, format);
271
#ifdef USE_ANDROID_LOGGER
272
    android_vprintf(format, args);
273
#else
274
0
    vfprintf(stderr, format, args);
275
0
#endif
276
0
    va_end(args);
277
0
  }
278
#if JXL_CRASH_ON_ERROR
279
  // JXL_CRASH_ON_ERROR means to Abort() only on non-fatal errors.
280
  if (status.IsFatalError()) {
281
    ::jxl::Abort();
282
  }
283
#endif  // JXL_CRASH_ON_ERROR
284
26.5k
  return status;
285
26.5k
}
286
287
template <typename T>
288
class JXL_MUST_USE_RESULT StatusOr {
289
  static_assert(!std::is_convertible<StatusCode, T>::value &&
290
                    !std::is_convertible<T, StatusCode>::value,
291
                "You cannot make a StatusOr with a type convertible from or to "
292
                "StatusCode");
293
  static_assert(std::is_move_constructible<T>::value &&
294
                    std::is_move_assignable<T>::value,
295
                "T must be move constructible and move assignable");
296
297
 public:
298
  // NOLINTNEXTLINE(google-explicit-constructor)
299
0
  StatusOr(StatusCode code) : code_(code) {
300
0
    JXL_DASSERT(code_ != StatusCode::kOk);
301
0
  }
Unexecuted instantiation: jxl::StatusOr<jxl::PaddedBytes>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedMemory>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<int> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Channel>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Image>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<float>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned char> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<float> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<float> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<int> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<bool>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::AcStrategyImage>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<signed char> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::ColorCorrelationMap>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::ANSSymbolReader>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<short> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<short> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::QuantizedSpline>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<unsigned long>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::RectT<long> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: jxl::StatusOr<jxl::RectT<unsigned long> >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::StatusOr(jxl::StatusCode)
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::StatusOr(jxl::StatusCode)
302
303
  // NOLINTNEXTLINE(google-explicit-constructor)
304
0
  StatusOr(Status status) : StatusOr(status.code()) {}
Unexecuted instantiation: jxl::StatusOr<jxl::PaddedBytes>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedMemory>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<int> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Channel>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Image>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<float>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned char> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<float> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<float> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<int> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<bool>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::AcStrategyImage>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<signed char> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::ColorCorrelationMap>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::ANSSymbolReader>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<short> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<short> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::StatusOr(jxl::Status)
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::QuantizedSpline>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::StatusOr(jxl::Status)
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<unsigned long>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::StatusOr(jxl::Status)
Unexecuted instantiation: low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::RectT<long> >::StatusOr(jxl::Status)
Unexecuted instantiation: jxl::StatusOr<jxl::RectT<unsigned long> >::StatusOr(jxl::Status)
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::StatusOr(jxl::Status)
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::StatusOr(jxl::Status)
305
306
  // NOLINTNEXTLINE(google-explicit-constructor)
307
56.8M
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
56.8M
    new (&storage_.data_) T(std::move(value));
309
56.8M
  }
jxl::StatusOr<jxl::PaddedBytes>::StatusOr(jxl::PaddedBytes&&)
Line
Count
Source
307
17.8k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
17.8k
    new (&storage_.data_) T(std::move(value));
309
17.8k
  }
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::StatusOr(JxlOutputProcessorBuffer&&)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::StatusOr(std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> >&&)
jxl::StatusOr<jxl::AlignedMemory>::StatusOr(jxl::AlignedMemory&&)
Line
Count
Source
307
28.3M
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
28.3M
    new (&storage_.data_) T(std::move(value));
309
28.3M
  }
jxl::StatusOr<jxl::Plane<int> >::StatusOr(jxl::Plane<int>&&)
Line
Count
Source
307
445k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
445k
    new (&storage_.data_) T(std::move(value));
309
445k
  }
jxl::StatusOr<jxl::Channel>::StatusOr(jxl::Channel&&)
Line
Count
Source
307
310k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
310k
    new (&storage_.data_) T(std::move(value));
309
310k
  }
jxl::StatusOr<jxl::Image>::StatusOr(jxl::Image&&)
Line
Count
Source
307
59.0k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
59.0k
    new (&storage_.data_) T(std::move(value));
309
59.0k
  }
jxl::StatusOr<float>::StatusOr(float&&)
Line
Count
Source
307
103k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
103k
    new (&storage_.data_) T(std::move(value));
309
103k
  }
jxl::StatusOr<jxl::Plane<unsigned char> >::StatusOr(jxl::Plane<unsigned char>&&)
Line
Count
Source
307
40.3k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
40.3k
    new (&storage_.data_) T(std::move(value));
309
40.3k
  }
jxl::StatusOr<jxl::Image3<float> >::StatusOr(jxl::Image3<float>&&)
Line
Count
Source
307
37.8k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
37.8k
    new (&storage_.data_) T(std::move(value));
309
37.8k
  }
jxl::StatusOr<jxl::Plane<float> >::StatusOr(jxl::Plane<float>&&)
Line
Count
Source
307
27.0M
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
27.0M
    new (&storage_.data_) T(std::move(value));
309
27.0M
  }
jxl::StatusOr<jxl::Image3<int> >::StatusOr(jxl::Image3<int>&&)
Line
Count
Source
307
6.84k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
6.84k
    new (&storage_.data_) T(std::move(value));
309
6.84k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::StatusOr(std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > >&&)
Line
Count
Source
307
993
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
993
    new (&storage_.data_) T(std::move(value));
309
993
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::StatusOr(std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> >&&)
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::StatusOr(jxl::AlignedArray<jxl::GroupDecCache>&&)
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::StatusOr(jxl::ModularStreamId&&)
Unexecuted instantiation: jxl::StatusOr<bool>::StatusOr(bool&&)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::StatusOr(std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> >&&)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::StatusOr(std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > >&&)
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::StatusOr(std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> >&&)
jxl::StatusOr<jxl::AcStrategyImage>::StatusOr(jxl::AcStrategyImage&&)
Line
Count
Source
307
13.4k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
13.4k
    new (&storage_.data_) T(std::move(value));
309
13.4k
  }
jxl::StatusOr<jxl::Plane<signed char> >::StatusOr(jxl::Plane<signed char>&&)
Line
Count
Source
307
26.8k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
26.8k
    new (&storage_.data_) T(std::move(value));
309
26.8k
  }
jxl::StatusOr<jxl::ColorCorrelationMap>::StatusOr(jxl::ColorCorrelationMap&&)
Line
Count
Source
307
13.4k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
13.4k
    new (&storage_.data_) T(std::move(value));
309
13.4k
  }
jxl::StatusOr<jxl::ANSSymbolReader>::StatusOr(jxl::ANSSymbolReader&&)
Line
Count
Source
307
53.8k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
53.8k
    new (&storage_.data_) T(std::move(value));
309
53.8k
  }
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::StatusOr(jxl::Plane<hwy::float16_t>&&)
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::StatusOr(jxl::Plane<unsigned int>&&)
jxl::StatusOr<jxl::Plane<short> >::StatusOr(jxl::Plane<short>&&)
Line
Count
Source
307
14.1k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
14.1k
    new (&storage_.data_) T(std::move(value));
309
14.1k
  }
jxl::StatusOr<jxl::Image3<short> >::StatusOr(jxl::Image3<short>&&)
Line
Count
Source
307
4.71k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
4.71k
    new (&storage_.data_) T(std::move(value));
309
4.71k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::StatusOr(std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > >&&)
Line
Count
Source
307
4.71k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
4.71k
    new (&storage_.data_) T(std::move(value));
309
4.71k
  }
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::StatusOr(jxl::(anonymous namespace)::GetBlockFromEncoder&&)
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::StatusOr(std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> >&&)
Line
Count
Source
307
13.3k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
13.3k
    new (&storage_.data_) T(std::move(value));
309
13.3k
  }
Unexecuted instantiation: jxl::StatusOr<jxl::QuantizedSpline>::StatusOr(jxl::QuantizedSpline&&)
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::StatusOr(std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> >&&)
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::StatusOr(jxl::ImageBundle&&)
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::StatusOr(jxl::(anonymous namespace)::ANSEncodingHistogram&&)
Unexecuted instantiation: jxl::StatusOr<unsigned long>::StatusOr(unsigned long&&)
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::StatusOr(jxl::Image3<unsigned char>&&)
jxl::StatusOr<jxl::RectT<long> >::StatusOr(jxl::RectT<long>&&)
Line
Count
Source
307
66.4k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
66.4k
    new (&storage_.data_) T(std::move(value));
309
66.4k
  }
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::StatusOr(jxl::(anonymous namespace)::Rows&&)
Line
Count
Source
307
18.4k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
18.4k
    new (&storage_.data_) T(std::move(value));
309
18.4k
  }
jxl::StatusOr<jxl::RectT<unsigned long> >::StatusOr(jxl::RectT<unsigned long>&&)
Line
Count
Source
307
120k
  StatusOr(T&& value) : code_(StatusCode::kOk) {
308
120k
    new (&storage_.data_) T(std::move(value));
309
120k
  }
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::StatusOr(std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> >&&)
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::StatusOr(jxl::(anonymous namespace)::GaussianEllipse&&)
310
311
  StatusOr(StatusOr&& other) noexcept {
312
    if (other.ok()) {
313
      new (&storage_.data_) T(std::move(other.storage_.data_));
314
    }
315
    code_ = other.code_;
316
  }
317
318
  StatusOr& operator=(StatusOr&& other) noexcept {
319
    if (this == &other) return *this;
320
    if (ok() && other.ok()) {
321
      storage_.data_ = std::move(other.storage_.data_);
322
    } else if (other.ok()) {
323
      new (&storage_.data_) T(std::move(other.storage_.data_));
324
    } else if (ok()) {
325
      storage_.data_.~T();
326
    }
327
    code_ = other.code_;
328
    return *this;
329
  }
330
331
  StatusOr(const StatusOr&) = delete;
332
  StatusOr operator=(const StatusOr&) = delete;
333
334
0
  bool ok() const { return code_ == StatusCode::kOk; }
335
56.8M
  Status status() const { return code_; }
jxl::StatusOr<jxl::AlignedMemory>::status() const
Line
Count
Source
335
28.3M
  Status status() const { return code_; }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::status() const
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::status() const
jxl::StatusOr<jxl::Image3<float> >::status() const
Line
Count
Source
335
37.8k
  Status status() const { return code_; }
jxl::StatusOr<jxl::Plane<float> >::status() const
Line
Count
Source
335
27.0M
  Status status() const { return code_; }
jxl::StatusOr<jxl::Plane<int> >::status() const
Line
Count
Source
335
444k
  Status status() const { return code_; }
jxl::StatusOr<jxl::PaddedBytes>::status() const
Line
Count
Source
335
17.8k
  Status status() const { return code_; }
jxl::StatusOr<jxl::ANSSymbolReader>::status() const
Line
Count
Source
335
53.8k
  Status status() const { return code_; }
jxl::StatusOr<jxl::Channel>::status() const
Line
Count
Source
335
312k
  Status status() const { return code_; }
jxl::StatusOr<float>::status() const
Line
Count
Source
335
103k
  Status status() const { return code_; }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::status() const
jxl::StatusOr<jxl::AcStrategyImage>::status() const
Line
Count
Source
335
13.4k
  Status status() const { return code_; }
jxl::StatusOr<jxl::Plane<unsigned char> >::status() const
Line
Count
Source
335
40.3k
  Status status() const { return code_; }
jxl::StatusOr<jxl::ColorCorrelationMap>::status() const
Line
Count
Source
335
13.4k
  Status status() const { return code_; }
jxl::StatusOr<jxl::Image3<int> >::status() const
Line
Count
Source
335
6.84k
  Status status() const { return code_; }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::status() const
Line
Count
Source
335
993
  Status status() const { return code_; }
Unexecuted instantiation: jxl::StatusOr<unsigned long>::status() const
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::status() const
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::status() const
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::status() const
Unexecuted instantiation: jxl::StatusOr<bool>::status() const
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::status() const
jxl::StatusOr<jxl::Image>::status() const
Line
Count
Source
335
59.0k
  Status status() const { return code_; }
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::status() const
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::status() const
jxl::StatusOr<jxl::Plane<signed char> >::status() const
Line
Count
Source
335
26.8k
  Status status() const { return code_; }
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::status() const
Line
Count
Source
335
13.3k
  Status status() const { return code_; }
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::status() const
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::status() const
jxl::StatusOr<jxl::Plane<short> >::status() const
Line
Count
Source
335
14.1k
  Status status() const { return code_; }
jxl::StatusOr<jxl::Image3<short> >::status() const
Line
Count
Source
335
4.71k
  Status status() const { return code_; }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::status() const
Line
Count
Source
335
4.71k
  Status status() const { return code_; }
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::status() const
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::status() const
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::status() const
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::status() const
jxl::StatusOr<jxl::RectT<long> >::status() const
Line
Count
Source
335
66.4k
  Status status() const { return code_; }
jxl::StatusOr<jxl::RectT<unsigned long> >::status() const
Line
Count
Source
335
120k
  Status status() const { return code_; }
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::status() const
Line
Count
Source
335
18.4k
  Status status() const { return code_; }
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::status() const
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::status() const
336
337
  // Only call this if you are absolutely sure that `ok()` is true.
338
  // Never call this manually: rely on JXL_ASSIGN_OR.
339
56.8M
  T value_() && {
340
56.8M
    JXL_DASSERT(ok());
341
56.8M
    return std::move(storage_.data_);
342
56.8M
  }
jxl::StatusOr<jxl::AlignedMemory>::value_() &&
Line
Count
Source
339
28.3M
  T value_() && {
340
28.3M
    JXL_DASSERT(ok());
341
28.3M
    return std::move(storage_.data_);
342
28.3M
  }
jxl::StatusOr<jxl::PaddedBytes>::value_() &&
Line
Count
Source
339
17.8k
  T value_() && {
340
17.8k
    JXL_DASSERT(ok());
341
17.8k
    return std::move(storage_.data_);
342
17.8k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::value_() &&
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::value_() &&
jxl::StatusOr<jxl::Image3<float> >::value_() &&
Line
Count
Source
339
37.8k
  T value_() && {
340
37.8k
    JXL_DASSERT(ok());
341
37.8k
    return std::move(storage_.data_);
342
37.8k
  }
jxl::StatusOr<jxl::Plane<float> >::value_() &&
Line
Count
Source
339
27.0M
  T value_() && {
340
27.0M
    JXL_DASSERT(ok());
341
27.0M
    return std::move(storage_.data_);
342
27.0M
  }
jxl::StatusOr<jxl::Plane<int> >::value_() &&
Line
Count
Source
339
444k
  T value_() && {
340
444k
    JXL_DASSERT(ok());
341
444k
    return std::move(storage_.data_);
342
444k
  }
jxl::StatusOr<jxl::ANSSymbolReader>::value_() &&
Line
Count
Source
339
53.8k
  T value_() && {
340
53.8k
    JXL_DASSERT(ok());
341
53.8k
    return std::move(storage_.data_);
342
53.8k
  }
jxl::StatusOr<jxl::Channel>::value_() &&
Line
Count
Source
339
311k
  T value_() && {
340
311k
    JXL_DASSERT(ok());
341
311k
    return std::move(storage_.data_);
342
311k
  }
jxl::StatusOr<float>::value_() &&
Line
Count
Source
339
103k
  T value_() && {
340
103k
    JXL_DASSERT(ok());
341
103k
    return std::move(storage_.data_);
342
103k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::value_() &&
jxl::StatusOr<jxl::AcStrategyImage>::value_() &&
Line
Count
Source
339
13.4k
  T value_() && {
340
13.4k
    JXL_DASSERT(ok());
341
13.4k
    return std::move(storage_.data_);
342
13.4k
  }
jxl::StatusOr<jxl::Plane<unsigned char> >::value_() &&
Line
Count
Source
339
40.3k
  T value_() && {
340
40.3k
    JXL_DASSERT(ok());
341
40.3k
    return std::move(storage_.data_);
342
40.3k
  }
jxl::StatusOr<jxl::ColorCorrelationMap>::value_() &&
Line
Count
Source
339
13.4k
  T value_() && {
340
13.4k
    JXL_DASSERT(ok());
341
13.4k
    return std::move(storage_.data_);
342
13.4k
  }
jxl::StatusOr<jxl::Image3<int> >::value_() &&
Line
Count
Source
339
6.84k
  T value_() && {
340
6.84k
    JXL_DASSERT(ok());
341
6.84k
    return std::move(storage_.data_);
342
6.84k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::value_() &&
Line
Count
Source
339
993
  T value_() && {
340
993
    JXL_DASSERT(ok());
341
993
    return std::move(storage_.data_);
342
993
  }
Unexecuted instantiation: jxl::StatusOr<unsigned long>::value_() &&
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::value_() &&
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::value_() &&
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::value_() &&
Unexecuted instantiation: jxl::StatusOr<bool>::value_() &&
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::value_() &&
jxl::StatusOr<jxl::Image>::value_() &&
Line
Count
Source
339
59.0k
  T value_() && {
340
59.0k
    JXL_DASSERT(ok());
341
59.0k
    return std::move(storage_.data_);
342
59.0k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::value_() &&
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::value_() &&
jxl::StatusOr<jxl::Plane<signed char> >::value_() &&
Line
Count
Source
339
26.8k
  T value_() && {
340
26.8k
    JXL_DASSERT(ok());
341
26.8k
    return std::move(storage_.data_);
342
26.8k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::value_() &&
Line
Count
Source
339
13.3k
  T value_() && {
340
13.3k
    JXL_DASSERT(ok());
341
13.3k
    return std::move(storage_.data_);
342
13.3k
  }
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::value_() &&
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::value_() &&
jxl::StatusOr<jxl::Plane<short> >::value_() &&
Line
Count
Source
339
14.1k
  T value_() && {
340
14.1k
    JXL_DASSERT(ok());
341
14.1k
    return std::move(storage_.data_);
342
14.1k
  }
jxl::StatusOr<jxl::Image3<short> >::value_() &&
Line
Count
Source
339
4.71k
  T value_() && {
340
4.71k
    JXL_DASSERT(ok());
341
4.71k
    return std::move(storage_.data_);
342
4.71k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::value_() &&
Line
Count
Source
339
4.71k
  T value_() && {
340
4.71k
    JXL_DASSERT(ok());
341
4.71k
    return std::move(storage_.data_);
342
4.71k
  }
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::value_() &&
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::value_() &&
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::value_() &&
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::value_() &&
jxl::StatusOr<jxl::RectT<long> >::value_() &&
Line
Count
Source
339
66.4k
  T value_() && {
340
66.4k
    JXL_DASSERT(ok());
341
66.4k
    return std::move(storage_.data_);
342
66.4k
  }
jxl::StatusOr<jxl::RectT<unsigned long> >::value_() &&
Line
Count
Source
339
120k
  T value_() && {
340
120k
    JXL_DASSERT(ok());
341
120k
    return std::move(storage_.data_);
342
120k
  }
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::value_() &&
Line
Count
Source
339
18.4k
  T value_() && {
340
18.4k
    JXL_DASSERT(ok());
341
18.4k
    return std::move(storage_.data_);
342
18.4k
  }
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::value_() &&
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::value_() &&
343
344
56.8M
  ~StatusOr() {
345
56.8M
    if (code_ == StatusCode::kOk) {
346
56.8M
      storage_.data_.~T();
347
56.8M
    }
348
56.8M
  }
jxl::StatusOr<jxl::AlignedMemory>::~StatusOr()
Line
Count
Source
344
28.3M
  ~StatusOr() {
345
28.3M
    if (code_ == StatusCode::kOk) {
346
28.3M
      storage_.data_.~T();
347
28.3M
    }
348
28.3M
  }
jxl::StatusOr<jxl::PaddedBytes>::~StatusOr()
Line
Count
Source
344
17.8k
  ~StatusOr() {
345
17.8k
    if (code_ == StatusCode::kOk) {
346
17.8k
      storage_.data_.~T();
347
17.8k
    }
348
17.8k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::~StatusOr()
jxl::StatusOr<jxl::ANSSymbolReader>::~StatusOr()
Line
Count
Source
344
53.8k
  ~StatusOr() {
345
53.8k
    if (code_ == StatusCode::kOk) {
346
53.8k
      storage_.data_.~T();
347
53.8k
    }
348
53.8k
  }
jxl::StatusOr<jxl::Channel>::~StatusOr()
Line
Count
Source
344
313k
  ~StatusOr() {
345
313k
    if (code_ == StatusCode::kOk) {
346
313k
      storage_.data_.~T();
347
313k
    }
348
313k
  }
jxl::StatusOr<jxl::Plane<int> >::~StatusOr()
Line
Count
Source
344
445k
  ~StatusOr() {
345
445k
    if (code_ == StatusCode::kOk) {
346
445k
      storage_.data_.~T();
347
445k
    }
348
445k
  }
jxl::StatusOr<float>::~StatusOr()
Line
Count
Source
344
103k
  ~StatusOr() {
345
103k
    if (code_ == StatusCode::kOk) {
346
103k
      storage_.data_.~T();
347
103k
    }
348
103k
  }
jxl::StatusOr<jxl::Plane<float> >::~StatusOr()
Line
Count
Source
344
27.0M
  ~StatusOr() {
345
27.0M
    if (code_ == StatusCode::kOk) {
346
27.0M
      storage_.data_.~T();
347
27.0M
    }
348
27.0M
  }
jxl::StatusOr<jxl::Image3<float> >::~StatusOr()
Line
Count
Source
344
37.8k
  ~StatusOr() {
345
37.8k
    if (code_ == StatusCode::kOk) {
346
37.8k
      storage_.data_.~T();
347
37.8k
    }
348
37.8k
  }
jxl::StatusOr<jxl::Image3<int> >::~StatusOr()
Line
Count
Source
344
6.84k
  ~StatusOr() {
345
6.84k
    if (code_ == StatusCode::kOk) {
346
6.84k
      storage_.data_.~T();
347
6.84k
    }
348
6.84k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::~StatusOr()
Line
Count
Source
344
993
  ~StatusOr() {
345
993
    if (code_ == StatusCode::kOk) {
346
993
      storage_.data_.~T();
347
993
    }
348
993
  }
Unexecuted instantiation: jxl::StatusOr<unsigned long>::~StatusOr()
jxl::StatusOr<jxl::Plane<unsigned char> >::~StatusOr()
Line
Count
Source
344
40.3k
  ~StatusOr() {
345
40.3k
    if (code_ == StatusCode::kOk) {
346
40.3k
      storage_.data_.~T();
347
40.3k
    }
348
40.3k
  }
jxl::StatusOr<jxl::ColorCorrelationMap>::~StatusOr()
Line
Count
Source
344
13.4k
  ~StatusOr() {
345
13.4k
    if (code_ == StatusCode::kOk) {
346
13.4k
      storage_.data_.~T();
347
13.4k
    }
348
13.4k
  }
jxl::StatusOr<jxl::AcStrategyImage>::~StatusOr()
Line
Count
Source
344
13.4k
  ~StatusOr() {
345
13.4k
    if (code_ == StatusCode::kOk) {
346
13.4k
      storage_.data_.~T();
347
13.4k
    }
348
13.4k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<bool>::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::~StatusOr()
jxl::StatusOr<jxl::Image>::~StatusOr()
Line
Count
Source
344
58.9k
  ~StatusOr() {
345
58.9k
    if (code_ == StatusCode::kOk) {
346
58.9k
      storage_.data_.~T();
347
58.9k
    }
348
58.9k
  }
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::~StatusOr()
jxl::StatusOr<jxl::Plane<signed char> >::~StatusOr()
Line
Count
Source
344
26.8k
  ~StatusOr() {
345
26.8k
    if (code_ == StatusCode::kOk) {
346
26.8k
      storage_.data_.~T();
347
26.8k
    }
348
26.8k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::~StatusOr()
Line
Count
Source
344
13.3k
  ~StatusOr() {
345
13.3k
    if (code_ == StatusCode::kOk) {
346
13.3k
      storage_.data_.~T();
347
13.3k
    }
348
13.3k
  }
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::~StatusOr()
jxl::StatusOr<jxl::Plane<short> >::~StatusOr()
Line
Count
Source
344
14.1k
  ~StatusOr() {
345
14.1k
    if (code_ == StatusCode::kOk) {
346
14.1k
      storage_.data_.~T();
347
14.1k
    }
348
14.1k
  }
jxl::StatusOr<jxl::Image3<short> >::~StatusOr()
Line
Count
Source
344
4.71k
  ~StatusOr() {
345
4.71k
    if (code_ == StatusCode::kOk) {
346
4.71k
      storage_.data_.~T();
347
4.71k
    }
348
4.71k
  }
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::~StatusOr()
Line
Count
Source
344
4.71k
  ~StatusOr() {
345
4.71k
    if (code_ == StatusCode::kOk) {
346
4.71k
      storage_.data_.~T();
347
4.71k
    }
348
4.71k
  }
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::~StatusOr()
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::~StatusOr()
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::~StatusOr()
jxl::StatusOr<jxl::RectT<long> >::~StatusOr()
Line
Count
Source
344
66.5k
  ~StatusOr() {
345
66.5k
    if (code_ == StatusCode::kOk) {
346
66.5k
      storage_.data_.~T();
347
66.5k
    }
348
66.5k
  }
jxl::StatusOr<jxl::RectT<unsigned long> >::~StatusOr()
Line
Count
Source
344
120k
  ~StatusOr() {
345
120k
    if (code_ == StatusCode::kOk) {
346
120k
      storage_.data_.~T();
347
120k
    }
348
120k
  }
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::~StatusOr()
Line
Count
Source
344
18.4k
  ~StatusOr() {
345
18.4k
    if (code_ == StatusCode::kOk) {
346
18.4k
      storage_.data_.~T();
347
18.4k
    }
348
18.4k
  }
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::~StatusOr()
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::~StatusOr()
349
350
 private:
351
  union Storage {
352
    char placeholder_;
353
    T data_;
354
56.8M
    Storage() {}
jxl::StatusOr<jxl::PaddedBytes>::Storage::Storage()
Line
Count
Source
354
17.8k
    Storage() {}
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::Storage::Storage()
jxl::StatusOr<jxl::AlignedMemory>::Storage::Storage()
Line
Count
Source
354
28.3M
    Storage() {}
jxl::StatusOr<jxl::Plane<int> >::Storage::Storage()
Line
Count
Source
354
445k
    Storage() {}
jxl::StatusOr<jxl::Channel>::Storage::Storage()
Line
Count
Source
354
310k
    Storage() {}
jxl::StatusOr<jxl::Image>::Storage::Storage()
Line
Count
Source
354
59.0k
    Storage() {}
jxl::StatusOr<float>::Storage::Storage()
Line
Count
Source
354
103k
    Storage() {}
jxl::StatusOr<jxl::Plane<unsigned char> >::Storage::Storage()
Line
Count
Source
354
40.3k
    Storage() {}
jxl::StatusOr<jxl::Image3<float> >::Storage::Storage()
Line
Count
Source
354
37.8k
    Storage() {}
jxl::StatusOr<jxl::Plane<float> >::Storage::Storage()
Line
Count
Source
354
27.0M
    Storage() {}
jxl::StatusOr<jxl::Image3<int> >::Storage::Storage()
Line
Count
Source
354
6.84k
    Storage() {}
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::Storage::Storage()
Line
Count
Source
354
993
    Storage() {}
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<bool>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::Storage::Storage()
jxl::StatusOr<jxl::AcStrategyImage>::Storage::Storage()
Line
Count
Source
354
13.4k
    Storage() {}
jxl::StatusOr<jxl::Plane<signed char> >::Storage::Storage()
Line
Count
Source
354
26.8k
    Storage() {}
jxl::StatusOr<jxl::ColorCorrelationMap>::Storage::Storage()
Line
Count
Source
354
13.4k
    Storage() {}
jxl::StatusOr<jxl::ANSSymbolReader>::Storage::Storage()
Line
Count
Source
354
53.8k
    Storage() {}
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::Storage::Storage()
jxl::StatusOr<jxl::Plane<short> >::Storage::Storage()
Line
Count
Source
354
14.1k
    Storage() {}
jxl::StatusOr<jxl::Image3<short> >::Storage::Storage()
Line
Count
Source
354
4.71k
    Storage() {}
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::Storage::Storage()
Line
Count
Source
354
4.71k
    Storage() {}
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::Storage::Storage()
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::Storage::Storage()
Line
Count
Source
354
13.3k
    Storage() {}
Unexecuted instantiation: jxl::StatusOr<jxl::QuantizedSpline>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::Storage::Storage()
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<unsigned long>::Storage::Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::Storage::Storage()
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::Storage::Storage()
Line
Count
Source
354
18.4k
    Storage() {}
jxl::StatusOr<jxl::RectT<long> >::Storage::Storage()
Line
Count
Source
354
66.4k
    Storage() {}
jxl::StatusOr<jxl::RectT<unsigned long> >::Storage::Storage()
Line
Count
Source
354
120k
    Storage() {}
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::Storage::Storage()
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::Storage::Storage()
355
56.8M
    ~Storage() {}
jxl::StatusOr<jxl::AlignedMemory>::Storage::~Storage()
Line
Count
Source
355
28.3M
    ~Storage() {}
jxl::StatusOr<jxl::PaddedBytes>::Storage::~Storage()
Line
Count
Source
355
17.8k
    ~Storage() {}
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::jpeg::JPEGData, std::__1::default_delete<jxl::jpeg::JPEGData> > >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<JxlOutputProcessorBuffer>::Storage::~Storage()
jxl::StatusOr<jxl::ANSSymbolReader>::Storage::~Storage()
Line
Count
Source
355
53.8k
    ~Storage() {}
jxl::StatusOr<jxl::Channel>::Storage::~Storage()
Line
Count
Source
355
312k
    ~Storage() {}
jxl::StatusOr<jxl::Plane<int> >::Storage::~Storage()
Line
Count
Source
355
445k
    ~Storage() {}
jxl::StatusOr<float>::Storage::~Storage()
Line
Count
Source
355
103k
    ~Storage() {}
jxl::StatusOr<jxl::Plane<float> >::Storage::~Storage()
Line
Count
Source
355
27.0M
    ~Storage() {}
jxl::StatusOr<jxl::Image3<float> >::Storage::~Storage()
Line
Count
Source
355
37.8k
    ~Storage() {}
jxl::StatusOr<jxl::Image3<int> >::Storage::~Storage()
Line
Count
Source
355
6.84k
    ~Storage() {}
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<int>, std::__1::default_delete<jxl::ACImageT<int> > > >::Storage::~Storage()
Line
Count
Source
355
993
    ~Storage() {}
Unexecuted instantiation: jxl::StatusOr<unsigned long>::Storage::~Storage()
jxl::StatusOr<jxl::Plane<unsigned char> >::Storage::~Storage()
Line
Count
Source
355
40.3k
    ~Storage() {}
jxl::StatusOr<jxl::ColorCorrelationMap>::Storage::~Storage()
Line
Count
Source
355
13.4k
    ~Storage() {}
jxl::StatusOr<jxl::AcStrategyImage>::Storage::~Storage()
Line
Count
Source
355
13.4k
    ~Storage() {}
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::BitWriter, std::__1::default_delete<jxl::BitWriter> > >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ModularFrameEncoder, std::__1::default_delete<jxl::ModularFrameEncoder> > >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::unique_ptr<jxl::ButteraugliComparator, std::__1::default_delete<jxl::ButteraugliComparator> > >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::AlignedArray<jxl::GroupDecCache> >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<bool>::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::ModularStreamId>::Storage::~Storage()
jxl::StatusOr<jxl::Image>::Storage::~Storage()
Line
Count
Source
355
58.9k
    ~Storage() {}
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<jxl::PropertyDecisionNode, std::__1::allocator<jxl::PropertyDecisionNode> > >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<std::__1::vector<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > >, std::__1::allocator<std::__1::pair<jxl::QuantizedPatch, std::__1::vector<std::__1::pair<unsigned int, unsigned int>, std::__1::allocator<std::__1::pair<unsigned int, unsigned int> > > > > > >::Storage::~Storage()
jxl::StatusOr<jxl::Plane<signed char> >::Storage::~Storage()
Line
Count
Source
355
26.8k
    ~Storage() {}
jxl::StatusOr<std::__1::unique_ptr<jxl::RenderPipeline, std::__1::default_delete<jxl::RenderPipeline> > >::Storage::~Storage()
Line
Count
Source
355
13.3k
    ~Storage() {}
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<hwy::float16_t> >::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::Plane<unsigned int> >::Storage::~Storage()
jxl::StatusOr<jxl::Plane<short> >::Storage::~Storage()
Line
Count
Source
355
14.1k
    ~Storage() {}
jxl::StatusOr<jxl::Image3<short> >::Storage::~Storage()
Line
Count
Source
355
4.71k
    ~Storage() {}
jxl::StatusOr<std::__1::unique_ptr<jxl::ACImageT<short>, std::__1::default_delete<jxl::ACImageT<short> > > >::Storage::~Storage()
Line
Count
Source
355
4.71k
    ~Storage() {}
Unexecuted instantiation: dec_group.cc:jxl::StatusOr<jxl::(anonymous namespace)::GetBlockFromEncoder>::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::ImageBundle>::Storage::~Storage()
Unexecuted instantiation: enc_ans.cc:jxl::StatusOr<jxl::(anonymous namespace)::ANSEncodingHistogram>::Storage::~Storage()
Unexecuted instantiation: jxl::StatusOr<jxl::Image3<unsigned char> >::Storage::~Storage()
jxl::StatusOr<jxl::RectT<long> >::Storage::~Storage()
Line
Count
Source
355
66.5k
    ~Storage() {}
jxl::StatusOr<jxl::RectT<unsigned long> >::Storage::~Storage()
Line
Count
Source
355
120k
    ~Storage() {}
low_memory_render_pipeline.cc:jxl::StatusOr<jxl::(anonymous namespace)::Rows>::Storage::~Storage()
Line
Count
Source
355
18.4k
    ~Storage() {}
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<jxl::(anonymous namespace)::GaussianEllipse>::Storage::~Storage()
Unexecuted instantiation: enc_detect_dots.cc:jxl::StatusOr<std::__1::vector<jxl::(anonymous namespace)::ConnectedComponent, std::__1::allocator<jxl::(anonymous namespace)::ConnectedComponent> > >::Storage::~Storage()
356
  } storage_;
357
358
  StatusCode code_;
359
};
360
361
#define JXL_ASSIGN_OR_RETURN(lhs, statusor) \
362
56.8M
  PRIVATE_JXL_ASSIGN_OR_RETURN_IMPL(        \
363
56.8M
      JXL_JOIN(assign_or_return_temporary_variable, __LINE__), lhs, statusor)
364
365
// NOLINTBEGIN(bugprone-macro-parentheses)
366
#define PRIVATE_JXL_ASSIGN_OR_RETURN_IMPL(name, lhs, statusor) \
367
56.8M
  auto name = statusor;                                        \
368
56.8M
  JXL_RETURN_IF_ERROR(name.status());                          \
369
56.8M
  lhs = std::move(name).value_();
370
// NOLINTEND(bugprone-macro-parentheses)
371
372
#define JXL_ASSIGN_OR_QUIT(lhs, statusor, message)                     \
373
0
  PRIVATE_JXL_ASSIGN_OR_QUIT_IMPL(                                     \
374
0
      JXL_JOIN(assign_or_temporary_variable, __LINE__), lhs, statusor, \
375
0
      message)
376
377
// NOLINTBEGIN(bugprone-macro-parentheses)
378
#define PRIVATE_JXL_ASSIGN_OR_QUIT_IMPL(name, lhs, statusor, message) \
379
0
  auto name = statusor;                                               \
380
0
  if (!name.ok()) {                                                   \
381
0
    QUIT(message);                                                    \
382
0
  }                                                                   \
383
0
  lhs = std::move(name).value_();
384
// NOLINTEND(bugprone-macro-parentheses)
385
386
}  // namespace jxl
387
388
#endif  // LIB_JXL_BASE_STATUS_H_