VIOAPI void pop_print_function( void ) { if( top_of_stack > 0 ) --top_of_stack; else handle_internal_error( "Stack underflow in pop_print_function" ); }
static BOOLEAN test_skiplist_integrity( skiplist_struct *skiplist ) { int i; update_struct update; BOOLEAN okay; for_less( i, 0, skiplist->level ) update.update[i] = skiplist->header->forward[i]; while( update.update[0] != NULL ) { i = 1; while( i < skiplist->level && update.update[0] == update.update[i] ) { update.update[i] = update.update[i]->forward[i]; ++i; } update.update[0] = update.update[0]->forward[0]; } okay = TRUE; for_less( i, 0, skiplist->level ) if( update.update[i] != NULL ) okay = FALSE; if( !okay ) handle_internal_error( "Skiplist integrity" ); return( okay ); }
VIOAPI void push_print_function( void ) { if( top_of_stack < MAX_PRINT_STACK - 1 ) { ++top_of_stack; print_function[top_of_stack] = NULL; } else handle_internal_error( "Stack overflow in push_print_function" ); }
static int get_current_sequence_number( void ) { static int current_sequence_number = 0; ++current_sequence_number; if( current_sequence_number == get_stop_sequence_number() ) handle_internal_error( "get_current_sequence_number" ); return( current_sequence_number ); }
void stream_on_read(uv_stream_t* stream, ssize_t nread, const uv_buf_t* buf) { connection* conn = stream->data; if (nread > 0) { if (conn->request_length == 0) { // We need to seek the first request to find out how many characters each request is. for (int i = 1; i < nread; i++) { if (buf->base[i] == '\r' && buf->base[i - 1] == '\n') { conn->request_length = i + 2; break; } } } ssize_t requests = (nread + conn->bytes_remaining) / conn->request_length; conn->bytes_remaining = conn->bytes_remaining + (nread % conn->request_length); stream_on_read_func(conn, requests, stream, nread, buf); } else if (nread == UV_ENOBUFS) { handle_buffer_exceeded_error(conn); } else if (nread == UV_EOF){ uv_shutdown_t* req = malloc(sizeof(uv_shutdown_t)); req->data = conn; uv_shutdown(req, &conn->stream, stream_on_shutdown); } else if (nread == UV_ECONNRESET || nread == UV_ECONNABORTED) { /* Let's close the connection as the other peer just disappeared */ stream_close_connection(conn); } else { /* We didn't see this coming, but an unexpected UV error code was passed in, so we'll * respond with a blanket 500 error if we can */ handle_internal_error(conn); } free(buf->base); }
static void transform_or_inverse_point_in_trans_plane(VIO_General_transform *transform, VIO_BOOL inverse_flag, VIO_Real x, VIO_Real y, VIO_Real z, VIO_Real *x_transformed, VIO_Real *y_transformed, VIO_Real *z_transformed) { int trans; switch( transform->type ) { case LINEAR: if( inverse_flag ) transform_point( transform->inverse_linear_transform, x, y, z, x_transformed, y_transformed, z_transformed ); else transform_point( transform->linear_transform, x, y, z, x_transformed, y_transformed, z_transformed ); break; case THIN_PLATE_SPLINE: if( inverse_flag ) { thin_plate_spline_inverse_transform( transform->n_dimensions, transform->n_points, transform->points, transform->displacements, x, y, z, x_transformed, y_transformed, z_transformed ); } else { thin_plate_spline_transform( transform->n_dimensions, transform->n_points, transform->points, transform->displacements, x, y, z, x_transformed, y_transformed, z_transformed ); } break; case GRID_TRANSFORM: if( inverse_flag ) { grid_inverse_transform_point_in_trans_plane( transform, x, y, z, x_transformed, y_transformed, z_transformed ); } else { grid_transform_point_in_trans_plane( transform, x, y, z, x_transformed, y_transformed, z_transformed ); } break; case USER_TRANSFORM: if( inverse_flag ) { transform->user_inverse_transform_function( transform->user_data, x, y, z, x_transformed, y_transformed, z_transformed ); } else { transform->user_transform_function( transform->user_data, x, y, z, x_transformed, y_transformed, z_transformed ); } break; case CONCATENATED_TRANSFORM: *x_transformed = x; *y_transformed = y; *z_transformed = z; if( transform->inverse_flag ) inverse_flag = !inverse_flag; if( inverse_flag ) { for( trans = transform->n_transforms-1; trans >= 0; --trans ) { general_inverse_transform_point_in_trans_plane(&transform->transforms[trans], *x_transformed, *y_transformed, *z_transformed, x_transformed, y_transformed, z_transformed ); } } else { for(trans=0; trans<transform->n_transforms; trans++) { general_transform_point_in_trans_plane( &transform->transforms[trans], *x_transformed, *y_transformed, *z_transformed, x_transformed, y_transformed, z_transformed ); } } break; default: handle_internal_error( "transform_or_invert_point" ); break; } }