From 1401860c831c31ff6bbc6857279681cd3d7ab07d Mon Sep 17 00:00:00 2001 From: Hugues Delorme Date: Tue, 5 Mar 2013 16:22:26 +0100 Subject: [PATCH] stlb: localize variables in their direct scope --- src/c/libstl/stlb_read.c | 28 ++++++++++++++++------------ src/c/libstl/stlb_write.c | 27 ++++++++++++++------------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/src/c/libstl/stlb_read.c b/src/c/libstl/stlb_read.c index bfd629f..2b335c1 100644 --- a/src/c/libstl/stlb_read.c +++ b/src/c/libstl/stlb_read.c @@ -27,13 +27,9 @@ static void foug_stlb_read_facets(foug_stlb_geom_input_t* geom_input, int foug_stlb_read(foug_stlb_read_args_t *args) { - uint8_t progress_pc; - uint8_t header_data[FOUG_STLB_HEADER_SIZE]; uint32_t total_facet_count; - size_t buffer_facet_count; size_t accum_facet_count_read; int error; - size_t facet_count_read; if (args->buffer == NULL) return FOUG_DATAX_NULL_BUFFER_ERROR; @@ -41,11 +37,16 @@ int foug_stlb_read(foug_stlb_read_args_t *args) return FOUG_DATAX_INVALID_BUFFER_SIZE_ERROR; /* Read header */ - if (foug_stream_read(&args->stream, header_data, 1, FOUG_STLB_HEADER_SIZE) != FOUG_STLB_HEADER_SIZE) - return FOUG_STLB_READ_HEADER_WRONG_SIZE_ERROR; - - if (args->geom_input.process_header_func != NULL) - args->geom_input.process_header_func(&args->geom_input, header_data); + { + uint8_t header_data[FOUG_STLB_HEADER_SIZE]; + if (foug_stream_read(&args->stream, header_data, 1, FOUG_STLB_HEADER_SIZE) + != FOUG_STLB_HEADER_SIZE) + { + return FOUG_STLB_READ_HEADER_WRONG_SIZE_ERROR; + } + if (args->geom_input.process_header_func != NULL) + args->geom_input.process_header_func(&args->geom_input, header_data); + } /* Read facet count */ if (foug_stream_read(&args->stream, args->buffer, sizeof(uint32_t), 1) != 1) @@ -56,12 +57,13 @@ int foug_stlb_read(foug_stlb_read_args_t *args) args->geom_input.begin_triangles_func(&args->geom_input, total_facet_count); /* Read triangles */ - buffer_facet_count = args->buffer_size / FOUG_STLB_TRIANGLE_SIZE; accum_facet_count_read = 0; error = FOUG_DATAX_NO_ERROR; while (foug_datax_no_error(error) && accum_facet_count_read < total_facet_count) { - facet_count_read = foug_stream_read(&args->stream, - args->buffer, FOUG_STLB_TRIANGLE_SIZE, buffer_facet_count); + const size_t facet_count_read = foug_stream_read(&args->stream, + args->buffer, + FOUG_STLB_TRIANGLE_SIZE, + args->buffer_size / FOUG_STLB_TRIANGLE_SIZE); if (foug_stream_error(&args->stream) != 0) error = FOUG_DATAX_STREAM_ERROR; else if (facet_count_read > 0) @@ -70,6 +72,8 @@ int foug_stlb_read(foug_stlb_read_args_t *args) break; /* Exit if no facet to read */ if (foug_datax_no_error(error)) { + uint8_t progress_pc; + foug_stlb_read_facets(&args->geom_input, args->buffer, facet_count_read); accum_facet_count_read += facet_count_read; progress_pc = foug_percentage(0, total_facet_count, accum_facet_count_read); diff --git a/src/c/libstl/stlb_write.c b/src/c/libstl/stlb_write.c index 7635936..62b9d3a 100644 --- a/src/c/libstl/stlb_write.c +++ b/src/c/libstl/stlb_write.c @@ -27,7 +27,6 @@ static void foug_stlb_write_facets(const foug_stlb_geom_output_t* geom_output, int foug_stlb_write(foug_stlb_write_args_t *args) { - uint8_t header_data[FOUG_STLB_HEADER_SIZE]; uint32_t facet_count; uint32_t i_facet; uint32_t buffer_facet_count; @@ -44,13 +43,16 @@ int foug_stlb_write(foug_stlb_write_args_t *args) return FOUG_STLB_WRITE_NULL_GET_TRIANGLE_FUNC; /* Write header */ - if (args->geom_output.get_header_func != NULL) - args->geom_output.get_header_func(&args->geom_output, header_data); - else - memset(header_data, 0, FOUG_STLB_HEADER_SIZE); + { + uint8_t header_data[FOUG_STLB_HEADER_SIZE]; + if (args->geom_output.get_header_func != NULL) + args->geom_output.get_header_func(&args->geom_output, header_data); + else + memset(header_data, 0, FOUG_STLB_HEADER_SIZE); - if (foug_stream_write(&args->stream, header_data, FOUG_STLB_HEADER_SIZE, 1) != 1) - return FOUG_DATAX_STREAM_ERROR; + if (foug_stream_write(&args->stream, header_data, FOUG_STLB_HEADER_SIZE, 1) != 1) + return FOUG_DATAX_STREAM_ERROR; + } /* Write facet count */ facet_count = args->geom_output.get_triangle_count_func(&args->geom_output); @@ -81,12 +83,11 @@ int foug_stlb_write(foug_stlb_write_args_t *args) } /* Task control */ - if (foug_datax_no_error(error)) { - if (!foug_task_control_handle_progress(&args->task_control, - foug_percentage(0, facet_count, i_facet + 1))) - { - error = FOUG_DATAX_TASK_STOPPED_ERROR; - } + if (foug_datax_no_error(error) + && !foug_task_control_handle_progress(&args->task_control, + foug_percentage(0, facet_count, i_facet + 1))) + { + error = FOUG_DATAX_TASK_STOPPED_ERROR; } } /* end for */