diff options
author | Mattias Andrée <maandree@operamail.com> | 2014-06-01 02:00:16 +0200 |
---|---|---|
committer | Mattias Andrée <maandree@operamail.com> | 2014-06-01 02:00:16 +0200 |
commit | cba9a65ed4157417b84f2d3e9b912f315a45c584 (patch) | |
tree | 4ad75a9d1f4f5bd0aff86a4d13726ef76fb4c7fe /src/lib | |
parent | whitespace (diff) | |
download | libgamma-cba9a65ed4157417b84f2d3e9b912f315a45c584.tar.gz libgamma-cba9a65ed4157417b84f2d3e9b912f315a45c584.tar.bz2 libgamma-cba9a65ed4157417b84f2d3e9b912f315a45c584.tar.xz |
m + doc
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/edid.c | 35 | ||||
-rw-r--r-- | src/lib/gamma-helper.c | 100 | ||||
-rw-r--r-- | src/lib/libgamma-error.c.gpp | 27 | ||||
-rw-r--r-- | src/lib/libgamma-error.h | 134 | ||||
-rw-r--r-- | src/lib/libgamma-method.c | 8 |
5 files changed, 177 insertions, 127 deletions
diff --git a/src/lib/edid.c b/src/lib/edid.c index 76867c7..800ebdd 100644 --- a/src/lib/edid.c +++ b/src/lib/edid.c @@ -35,45 +35,72 @@ int libgamma_parse_edid(libgamma_crtc_information_t* restrict this, int32_t fields) { #define __test_version(edid, major, minor) (((edid)[18] == major) && ((edid)[19] == minor)) +#define __m(value) (this->edid[index++] != value) int error = 0; int checksum = 0; - size_t i; + size_t i, index = 0; + /* If the length of the EDID is not 128 bytes, we know that it is not of + EDID structure revision 1.3, and thus we do not support it. Additionally + this make sure we do not do segmentation violation on the next test. */ if (this->edid_length != 128) error = LIBGAMMA_EDID_LENGTH_UNSUPPORTED; - else if ((this->edid[0] != 0x00) || (this->edid[1] != 0xFF) || (this->edid[2] != 0xFF) || (this->edid[3] != 0xFF) || - (this->edid[4] != 0xFF) || (this->edid[5] != 0xFF) || (this->edid[6] != 0xFF) || (this->edid[7] != 0x00)) + /* Check that the magic number of that of the EDID structure. */ + else if (__m(0x00) || __m(0xFF) || __m(0xFF) || __m(0xFF) || __m(0xFF) || __m(0xFF) || __m(0xFF) || __m(0x00)) error = LIBGAMMA_EDID_WRONG_MAGIC_NUMBER; + /* Check that EDID structure revision 1.3 is used, it is the only version + we support. It is also by far the most commonly use revision and it is + currently the newest revision. */ else if (__test_version(this->edid, 1, 3) == 0) error = LIBGAMMA_EDID_REVISION_UNSUPPORTED; + /* If we have encountered an error, report it for the fields that require + the EDID to be parsed. Note that it is not stored for the EDID field + itself because it is not considered an error just because we do not + support the used version. */ this->width_mm_edid_error = this->height_mm_edid_error = this->gamma_error = error; + /* Retrieve the size of the viewport. This is done even if it is not + requested because it is not worth it branch. */ this->width_mm_edid = (size_t)(this->edid[21]) * 10; this->height_mm_edid = (size_t)(this->edid[22]) * 10; + /* Retrieve the monitor's gamma characteristics. */ if ((fields & LIBGAMMA_CRTC_INFO_GAMMA) && (error == 0)) { if (this->edid[23] == 0xFF) + /* If the gamma charactistics is FFh (3,55) it should be interpreted as not specified. */ this->gamma_error = LIBGAMMA_GAMMA_NOT_SPECIFIED; else this->gamma_red = this->gamma_green = this->gamma_blue = (float)((int)(this->edid[23]) + 100) / 100.f; } + /* If not error has occurred, calculate and test the checksum. + It is not considered an error that the gamma characteristics + is left unspecified in the EDID. */ if (error == 0) for (i = 0; i < this->edid_length; i++) checksum += (int)(this->edid[i]); + /* The checksum should be zero. */ if ((checksum & 255)) { + /* Store the error in all fields that require the EDID to be parsed, + as well as the EDID field itself. */ error = LIBGAMMA_EDID_CHECKSUM_ERROR; this->edid_error = this->width_mm_edid_error = this->height_mm_edid_error = error; + /* If the gamma characteristics is not specified, that is kept, + and the checksum error is augmented. */ this->gamma_error = this->gamma_error == LIBGAMMA_GAMMA_NOT_SPECIFIED - ? LIBGAMMA_GAMMA_NOT_SPECIFIED_AND_EDID_CHECKSUM_ERROR : 0; + ? LIBGAMMA_GAMMA_NOT_SPECIFIED_AND_EDID_CHECKSUM_ERROR : error; } + /* Return whether or not we encountered an error or if + the gamma characteristics was requested but is not + specified in the monitor's EDID. */ return error | this->gamma_error; +#undef __m #undef __test_version } diff --git a/src/lib/gamma-helper.c b/src/lib/gamma-helper.c index dd4e027..5e3c09b 100644 --- a/src/lib/gamma-helper.c +++ b/src/lib/gamma-helper.c @@ -25,9 +25,15 @@ #include <stdint.h> +/** + * Just an arbitrary version + */ #define ANY bits64 +#define __translate(instruction) for (i = 0; i < n; i++) instruction; break + + /** * Convert any set of gamma ramps into a 64-bit integer array with all channels. * @@ -41,32 +47,16 @@ static void translate_to_64(signed depth, size_t n, uint64_t* restrict out, libg size_t i; switch (depth) { - case 16: - for (i = 0; i < n; i++) - out[i] = (uint64_t)(in.bits16.red[i]) * 0x0001000100010001ULL; - break; - - case 32: - for (i = 0; i < n; i++) - out[i] = (uint64_t)(in.bits32.red[i]) * 0x0000000100000001ULL; - break; - - case 64: - for (i = 0; i < n; i++) - out[i] = in.bits64.red[i]; - break; - - case -1: - for (i = 0; i < n; i++) - out[i] = (uint64_t)(in.float_single.red[i] * (float)UINT64_MAX); - break; - - case -2: - for (i = 0; i < n; i++) - out[i] = (uint64_t)(in.float_double.red[i] * (double)UINT64_MAX); - break; - - default: /* This is not possible. */ + /* Translate integer. */ + case 16: __translate(out[i] = (uint64_t)(in.bits16.red[i]) * 0x0001000100010001ULL); + case 32: __translate(out[i] = (uint64_t)(in.bits32.red[i]) * 0x0000000100000001ULL); + /* Identity translation. */ + case 64: __translate(out[i] = in.bits64.red[i]); + /* Translate floating point. */ + case -1: __translate(out[i] = (uint64_t)(in.float_single.red[i] * (float)UINT64_MAX)); + case -2: __translate(out[i] = (uint64_t)(in.float_double.red[i] * (double)UINT64_MAX)); + default: + /* This is not possible. */ abort(); break; } @@ -84,35 +74,18 @@ static void translate_to_64(signed depth, size_t n, uint64_t* restrict out, libg static void translate_from_64(signed depth, size_t n, libgamma_gamma_ramps_any_t out, uint64_t* restrict in) { size_t i; - switch (depth) { - case 16: - for (i = 0; i < n; i++) - out.bits16.red[i] = (uint16_t)(in[i] / 0x0001000100010001ULL); - break; - - case 32: - for (i = 0; i < n; i++) - out.bits32.red[i] = (uint32_t)(in[i] / 0x0000000100000001ULL); - break; - - case 64: - for (i = 0; i < n; i++) - out.bits64.red[i] = in[i]; - break; - - case -1: - for (i = 0; i < n; i++) - out.float_single.red[i] = (float)(in[i]) / (float)UINT64_MAX; - break; - - case -2: - for (i = 0; i < n; i++) - out.float_double.red[i] = (double)(in[i]) / (double)UINT64_MAX; - break; - - default: /* This is not possible. */ + /* Translate integer. */ + case 16: __translate(out.bits16.red[i] = (uint16_t)(in[i] / 0x0001000100010001ULL)); + case 32: __translate(out.bits32.red[i] = (uint32_t)(in[i] / 0x0000000100000001ULL)); + /* Identity translation. */ + case 64: __translate(out.bits64.red[i] = in[i]); + /* Translate floating point. */ + case -1: __translate(out.float_single.red[i] = (float)(in[i]) / (float)UINT64_MAX); + case -2: __translate(out.float_double.red[i] = (double)(in[i]) / (double)UINT64_MAX); + default: + /* This is not possible. */ abort(); break; } @@ -133,8 +106,7 @@ static void translate_from_64(signed depth, size_t n, libgamma_gamma_ramps_any_t static int allocated_any_ramp(libgamma_gamma_ramps_any_t* restrict ramps_sys, libgamma_gamma_ramps_any_t ramps, signed depth, size_t* restrict elements) { - size_t n = 0; - size_t d; + size_t n = 0, d; switch (depth) { @@ -156,7 +128,7 @@ static int allocated_any_ramp(libgamma_gamma_ramps_any_t* restrict ramps_sys, ramps_sys->ANY.blue = (void*)(((char*)(ramps_sys->ANY.green)) + ramps.ANY.green_size * d / sizeof(char)); *elements = n; - return ramps_sys->ANY.red ? 0 : LIBGAMMA_ERRNO_SET; + return ramps_sys->ANY.red == NULL ? LIBGAMMA_ERRNO_SET : 0; } @@ -189,16 +161,10 @@ int libgamma_translated_ramp_get_(libgamma_crtc_state_t* restrict this, return r; if ((r = fun(this, &ramps_sys))) - { - free(ramps_sys.ANY.red); - return r; - } + return free(ramps_sys.ANY.red), r; if ((ramps_full = malloc(n * sizeof(uint64_t))) == NULL) - { - free(ramps_sys.ANY.red); - return LIBGAMMA_ERRNO_SET; - } + return free(ramps_sys.ANY.red), LIBGAMMA_ERRNO_SET; translate_to_64(depth_system, n, ramps_full, ramps_sys); free(ramps_sys.ANY.red); @@ -238,10 +204,7 @@ int libgamma_translated_ramp_set_(libgamma_crtc_state_t* restrict this, return r; if ((ramps_full = malloc(n * sizeof(uint64_t))) == NULL) - { - free(ramps_sys.ANY.red); - return LIBGAMMA_ERRNO_SET; - } + return free(ramps_sys.ANY.red), LIBGAMMA_ERRNO_SET; translate_to_64(depth_user, n, ramps_full, ramps); translate_from_64(depth_system, n, ramps_sys, ramps_full); @@ -254,5 +217,6 @@ int libgamma_translated_ramp_set_(libgamma_crtc_state_t* restrict this, } +#undef __translate #undef ANY diff --git a/src/lib/libgamma-error.c.gpp b/src/lib/libgamma-error.c.gpp index d443f74..64f1904 100644 --- a/src/lib/libgamma-error.c.gpp +++ b/src/lib/libgamma-error.c.gpp @@ -34,13 +34,16 @@ /** - * Group that the user needs to be a member of if `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. + * Group that the user needs to be a member of if + * `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. */ gid_t libgamma_group_gid = 0; /** - * Group that the user needs to be a member of if `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, - * `NULL` if the name of the group `libgamma_group_gid` cannot be determined. + * Group that the user needs to be a member of if + * `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, + * `NULL` if the name of the group `libgamma_group_gid` + * cannot be determined. */ const char* libgamma_group_name = NULL; @@ -67,23 +70,30 @@ void libgamma_perror(const char* name, int error_code) { if (error_code >= 0) { + /* Print the stored errno value. */ errno = error_code; perror(name); } else if (error_code == LIBGAMMA_ERRNO_SET) + /* Print errno. */ perror(name); else if (error_code == LIBGAMMA_DEVICE_REQUIRE_GROUP) { + /* Print the error name and the required group membership. */ const char* error = libgamma_name_of_error(error_code); long int gid = (long int)libgamma_group_gid; if (libgamma_group_name == NULL) + /* Group name unknown. */ fprintf(stderr, "%s: %s: %ld\n", name, error, gid); else - fprintf(stderr, "%s: %s: %s (%lid)\n", name, error, libgamma_group_name, gid); + /* Group name known, ID is second class. */ + fprintf(stderr, "%s: %s: %s (%ld)\n", name, error, libgamma_group_name, gid); } else if (error_code < LIBGAMMA_ERROR_MIN) + /* If the error code does not exist, print "(?)" */ fprintf(stderr, "%s: (?)\n", name); else + /* Print the name of the error. */ fprintf(stderr, "%s: %s\n", name, libgamma_name_of_error(error_code)); } @@ -98,6 +108,9 @@ void libgamma_perror(const char* name, int error_code) */ const char* libgamma_name_of_error(int value) { + /* Map from error codes to error names. + The output of $(libgamma-error-extract --list) + is sorted by error code in decreasing order. */ static const char* error_names[] = { £>for error in $(libgamma-error-extract --list); do @@ -105,9 +118,12 @@ const char* libgamma_name_of_error(int value) £>done }; + /* Return `NULL` if the error code is invalid. */ if ((value < LIBGAMMA_ERROR_MIN) || (value >= 0)) return NULL; + /* Convert error code from {-1, -2, -3, ...} to {0, 1, 2, ...} + and look up the error's name and return it. */ return error_names[-value - 1]; } @@ -121,13 +137,16 @@ const char* libgamma_name_of_error(int value) */ int libgamma_value_of_error(const char* name) { + /* Return 0 (not a valid error code) if the error name is `NULL`. */ if (name == NULL) return 0; + /* Test error names against `name` and return the value of the match error. */ £>for error in $(libgamma-error-extract --list); do if (!strcmp(name, "£{error}")) return £{error}; £>done + /* Return 0 (not a valid error code) if the error name is unknown. */ return 0; } diff --git a/src/lib/libgamma-error.h b/src/lib/libgamma-error.h index 06a7077..8431877 100644 --- a/src/lib/libgamma-error.h +++ b/src/lib/libgamma-error.h @@ -26,13 +26,16 @@ /** - * Group that the user needs to be a member of if `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. + * Group that the user needs to be a member of if + * `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned. */ extern gid_t libgamma_group_gid; /** - * Group that the user needs to be a member of if `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, - * `NULL` if the name of the group `libgamma_group_gid` cannot be determined. + * Group that the user needs to be a member of if + * `LIBGAMMA_DEVICE_REQUIRE_GROUP` is returned, + * `NULL` if the name of the group `libgamma_group_gid` + * cannot be determined. */ extern const char* libgamma_group_name; @@ -65,80 +68,95 @@ extern const char* libgamma_group_name; #define LIBGAMMA_NO_SUCH_CRTC (-5) /** - * Counter overflowed when counting the number of available items. + * Counter overflowed when counting the number + * of available items. */ #define LIBGAMMA_IMPOSSIBLE_AMOUNT (-6) /** - * The selected connector is disabled, it does not have a CRTC. + * The selected connector is disabled, it does + * not have a CRTC. */ #define LIBGAMMA_CONNECTOR_DISABLED (-7) /** - * The selected CRTC could not be opened, reason unknown. + * The selected CRTC could not be opened, + * reason unknown. */ #define LIBGAMMA_OPEN_CRTC_FAILED (-8) /** - * The CRTC information field is not supported by the adjustment method. + * The CRTC information field is not supported + * by the adjustment method. */ #define LIBGAMMA_CRTC_INFO_NOT_SUPPORTED (-9) /** - * Failed to read the current gamma ramps for the selected CRTC, reason unknown. + * Failed to read the current gamma ramps for + * the selected CRTC, reason unknown. */ #define LIBGAMMA_GAMMA_RAMP_READ_FAILED (-10) /** - * Failed to write the current gamma ramps for the selected CRTC, reason unknown. + * Failed to write the current gamma ramps for + * the selected CRTC, reason unknown. */ #define LIBGAMMA_GAMMA_RAMP_WRITE_FAILED (-11) /** - * The specified ramp sizes does not match the ramps sizes returned by the - * adjustment methods in response to the query/command. + * The specified ramp sizes does not match the + * ramps sizes returned by the adjustment methods + * in response to the query/command. */ #define LIBGAMMA_GAMMA_RAMP_SIZE_CHANGED (-12) /** - * The specified ramp sizes are not identical which is required by the adjustment method. + * The specified ramp sizes are not identical + * which is required by the adjustment method. * (Only returned in debug mode.) */ #define LIBGAMMA_MIXED_GAMMA_RAMP_SIZE (-13) /** - * The specified ramp sizes are not supported by the adjustment method. + * The specified ramp sizes are not supported + * by the adjustment method. * (Only returned in debug mode.) */ #define LIBGAMMA_WRONG_GAMMA_RAMP_SIZE (-14) /** - * The adjustment method reported that the gamma ramps size is 1, or perhaps even zero or negative. + * The adjustment method reported that the gamma + * ramps size is 1, or perhaps even zero or negative. */ #define LIBGAMMA_SINGLETON_GAMMA_RAMP (-15) /** - * The adjustment method failed to list available CRTC:s, reason unknown. + * The adjustment method failed to list + * available CRTC:s, reason unknown. */ #define LIBGAMMA_LIST_CRTCS_FAILED (-16) /** - * Failed to acquire mode resources from the adjustment method. + * Failed to acquire mode resources from the + * adjustment method. */ #define LIBGAMMA_ACQUIRING_MODE_RESOURCES_FAILED (-17) /** - * The adjustment method reported that a negative number of partitions exists in the site. + * The adjustment method reported that a negative + * number of partitions exists in the site. */ #define LIBGAMMA_NEGATIVE_PARTITION_COUNT (-18) /** - * The adjustment method reported that a negative number of CRTC:s exists in the partition. + * The adjustment method reported that a negative + * number of CRTC:s exists in the partition. */ #define LIBGAMMA_NEGATIVE_CRTC_COUNT (-19) /** - * Device cannot be access becauses of insufficient permissions. + * Device cannot be access becauses of + * insufficient permissions. */ #define LIBGAMMA_DEVICE_RESTRICTED (-20) @@ -148,9 +166,10 @@ extern const char* libgamma_group_name; #define LIBGAMMA_DEVICE_ACCESS_FAILED (-21) /** - * Device cannot be access, membership of the `libgamma_group_gid` - * (named by `libgamma_group_name` (can be `NULL`, if so `errno` may - * have been set to tell why)) is required. + * Device cannot be access, membership of the + * `libgamma_group_gid` (named by `libgamma_group_name` + * (can be `NULL`, if so `errno` may have been set + * to tell why)) is required. */ #define LIBGAMMA_DEVICE_REQUIRE_GROUP (-22) @@ -165,95 +184,112 @@ extern const char* libgamma_group_name; #define LIBGAMMA_STATE_UNKNOWN (-24) /** - * Failed to determine which connector the CRTC belongs to. + * Failed to determine which connector the + * CRTC belongs to. */ #define LIBGAMMA_CONNECTOR_UNKNOWN (-25) /** - * The detected connector type is not listed in this library and has to be updated. + * The detected connector type is not listed + * in this library and has to be updated. */ #define LIBGAMMA_CONNECTOR_TYPE_NOT_RECOGNISED (-26) /** - * The detected subpixel order is not listed in this library and has to be updated. + * The detected subpixel order is not listed + * in this library and has to be updated. */ #define LIBGAMMA_SUBPIXEL_ORDER_NOT_RECOGNISED (-27) /** - * The length of the EDID does not match that of any supported EDID structure revision. + * The length of the EDID does not match that + * of any supported EDID structure revision. */ #define LIBGAMMA_EDID_LENGTH_UNSUPPORTED (-28) /** - * The magic number in the EDID does not match that of any supported EDID structure revision. + * The magic number in the EDID does not match + * that of any supported EDID structure revision. */ #define LIBGAMMA_EDID_WRONG_MAGIC_NUMBER (-29) /** - * The EDID structure revision used by the monitor is not supported. + * The EDID structure revision used by the + * monitor is not supported. */ #define LIBGAMMA_EDID_REVISION_UNSUPPORTED (-30) /** - * The gamma characteristics field in the EDID is left unspecified. + * The gamma characteristics field in the EDID + * is left unspecified. * (This could be considered a non-error.) */ #define LIBGAMMA_GAMMA_NOT_SPECIFIED (-31) /** - * The checksum in the EDID is incorrect, all request information has been provided + * The checksum in the EDID is incorrect, all + * request information has been provided * by you cannot count on it. */ #define LIBGAMMA_EDID_CHECKSUM_ERROR (-32) /** - * Both of the errors `LIBGAMMA_GAMMA_NOT_SPECIFIED` and - * `LIBGAMMA_EDID_CHECKSUM_ERROR` have occurred. + * Both of the errors `LIBGAMMA_GAMMA_NOT_SPECIFIED` + * and `LIBGAMMA_EDID_CHECKSUM_ERROR` have occurred. */ #define LIBGAMMA_GAMMA_NOT_SPECIFIED_AND_EDID_CHECKSUM_ERROR (-33) /** - * Failed to query the gamma ramps size from the adjustment method, reason unknown. + * Failed to query the gamma ramps size from the + * adjustment method, reason unknown. */ #define LIBGAMMA_GAMMA_RAMPS_SIZE_QUERY_FAILED (-34) /** - * The selected partition could not be opened, reason unknown. + * The selected partition could not be opened, + * reason unknown. */ #define LIBGAMMA_OPEN_PARTITION_FAILED (-35) /** - * The selected site could not be opened, reason unknown. + * The selected site could not be opened, + * reason unknown. */ #define LIBGAMMA_OPEN_SITE_FAILED (-36) /** - * Failed to query the adjustment method for its protocol version, reason unknown. + * Failed to query the adjustment method for + * its protocol version, reason unknown. */ #define LIBGAMMA_PROTOCOL_VERSION_QUERY_FAILED (-37) /** - * The adjustment method's version of its protocol is not supported. + * The adjustment method's version of its + * protocol is not supported. */ #define LIBGAMMA_PROTOCOL_VERSION_NOT_SUPPORTED (-38) /** - * The adjustment method failed to list available partitions, reason unknown. + * The adjustment method failed to list + * available partitions, reason unknown. */ #define LIBGAMMA_LIST_PARTITIONS_FAILED (-39) /** - * Partition exists by index, but the partition at that index does not exist. + * Partition exists by index, but the partition + * at that index does not exist. */ #define LIBGAMMA_NULL_PARTITION (-40) /** - * There is not monitor connected to the connector of the selected CRTC. + * There is not monitor connected to the + * connector of the selected CRTC. */ #define LIBGAMMA_NOT_CONNECTED (-41) /** - * Data extraction from a reply from the adjustment method failed, reason unknown. + * Data extraction from a reply from the + * adjustment method failed, reason unknown. */ #define LIBGAMMA_REPLY_VALUE_EXTRACTION_FAILED (-42) @@ -263,26 +299,30 @@ extern const char* libgamma_group_name; #define LIBGAMMA_EDID_NOT_FOUND (-43) /** - * Failed to list properties on the output, reason unknown. + * Failed to list properties on the output, + * reason unknown. */ #define LIBGAMMA_LIST_PROPERTIES_FAILED (-44) /** - * Failed to query a property's value from the output, reason unknown. + * Failed to query a property's value from + * the output, reason unknown. */ #define LIBGAMMA_PROPERTY_VALUE_QUERY_FAILED (-45) /** - * A request for information on an output failed, reason unknown. + * A request for information on an output + * failed, reason unknown. */ #define LIBGAMMA_OUTPUT_INFORMATION_QUERY_FAILED (-46) /** - * The number of the libgamma error with the lowest number. - * If this is lower than the number your program thinks it - * should be sould update your program for new errors. + * The number of the libgamma error with the + * lowest number. If this is lower than the + * number your program thinks it should be sould + * update your program for new errors. */ #define LIBGAMMA_ERROR_MIN (-46) diff --git a/src/lib/libgamma-method.c b/src/lib/libgamma-method.c index 4c81549..f9fa7a3 100644 --- a/src/lib/libgamma-method.c +++ b/src/lib/libgamma-method.c @@ -40,7 +40,7 @@ int libgamma_gamma_ramps_initialise(libgamma_gamma_ramps_t* restrict this) this->red = malloc(n * sizeof(uint16_t)); this->green = this-> red + this-> red_size; this->blue = this->green + this->green_size; - return this->red ? 0 : -1; + return this->red == NULL ? -1 : 0; } @@ -89,7 +89,7 @@ int libgamma_gamma_ramps32_initialise(libgamma_gamma_ramps32_t* restrict this) this->red = malloc(n * sizeof(uint32_t)); this->green = this-> red + this-> red_size; this->blue = this->green + this->green_size; - return this->red ? 0 : -1; + return this->red == NULL ? -1 : 0; } @@ -138,7 +138,7 @@ int libgamma_gamma_ramps64_initialise(libgamma_gamma_ramps64_t* restrict this) this->red = malloc(n * sizeof(uint64_t)); this->green = this-> red + this-> red_size; this->blue = this->green + this->green_size; - return this->red ? 0 : -1; + return this->red == NULL ? -1 : 0; } @@ -187,7 +187,7 @@ int libgamma_gamma_rampsf_initialise(libgamma_gamma_rampsf_t* restrict this) this->red = malloc(n * sizeof(float)); this->green = this-> red + this-> red_size; this->blue = this->green + this->green_size; - return this->red ? 0 : -1; + return this->red == NULL ? -1 : 0; } |