if (exc == DOM_NO_ERR && attr != NULL) {
if (dom_string_data(attr)[0] == (uint8_t) '#') {
char *s = strndup(dom_string_data(attr) + 1,
- dom_string_length(attr) - 1);
+ dom_string_byte_length(attr) - 1);
svgtiny_find_gradient(s, state);
free(s);
}
if (exc == DOM_NO_ERR && attr != NULL) {
float a = 1, b = 0, c = 0, d = 1, e = 0, f = 0;
char *s = strndup(dom_string_data(attr),
- dom_string_length(attr));
+ dom_string_byte_length(attr));
if (s == NULL) {
dom_string_unref(attr);
return svgtiny_OUT_OF_MEMORY;
dom_element *stop;
float offset = -1;
svgtiny_colour color = svgtiny_TRANSPARENT;
- exc = dom_nodelist_item(stops, stopnr, &stop);
+ exc = dom_nodelist_item(stops, stopnr,
+ (dom_node **) (void *) &stop);
if (exc != DOM_NO_ERR)
continue;
exc = dom_element_get_attribute(stop,
&attr);
if (exc == DOM_NO_ERR && attr != NULL) {
char *s = strndup(dom_string_data(attr),
- dom_string_length(attr));
+ dom_string_byte_length(attr));
offset = svgtiny_parse_gradient_offset(s);
free(s);
dom_string_unref(attr);
&attr);
if (exc == DOM_NO_ERR && attr != NULL) {
char *content = strndup(dom_string_data(attr),
- dom_string_length(attr));
+ dom_string_byte_length(attr));
const char *s;
dom_string *value;
if ((s = strstr(content, "stop-color:"))) {
object_x0, object_y0, object_x1, object_y1);
#endif
- /* compute gradient vector */
- fprintf(stderr, "x1 %*s, y1 %*s, x2 %*s, y2 %*s\n",
- dom_string_length(state->gradient_x1),
- dom_string_data(state->gradient_x1),
- dom_string_length(state->gradient_y1),
- dom_string_data(state->gradient_y1),
- dom_string_length(state->gradient_x2),
- dom_string_data(state->gradient_x2),
- dom_string_length(state->gradient_y2),
- dom_string_data(state->gradient_y2));
-
if (!state->gradient_user_space_on_use) {
gradient_x0 = object_x0 +
svgtiny_parse_length(state->gradient_x1,
gradient_norm_squared;
/* determine steps from change in r */
- steps = ceilf(fabsf(r1 - r0) / 0.05);
+
+ if(isnan(r0) || isnan(r1)) {
+ steps = 1;
+ } else {
+ steps = ceilf(fabsf(r1 - r0) / 0.05);
+ }
+
if (steps == 0)
steps = 1;
fprintf(stderr, "r0 %g, r1 %g, steps %i\n",