commit c68eddff02ebac31c673556d3553aa95998667f4
parent 76062942fa7b82486c4ab1a6c79126fb62c6dd07
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date: Fri, 27 Mar 2020 16:42:59 +0100
Fix gcc build
Diffstat:
7 files changed, 105 insertions(+), 89 deletions(-)
diff --git a/src/main.c b/src/main.c
@@ -65,8 +65,9 @@ main
/* Dump all the app-independent information */
ERR(sg3d_geometry_dump_as_vtk(stardis.geometry.sg3d, stdout));
/* Dump the compute region if any */
- if(stardis.mode & REGION_COMPUTE_MODES)
+ if(stardis.mode & REGION_COMPUTE_MODES) {
ERR(dump_compute_region_at_the_end_of_vtk(&stardis, stdout));
+ }
/* Dump possible holes
* TODO: as this extracts enclosures, it could dump front/back
* enclosure IDs too */
diff --git a/src/stardis-app.c b/src/stardis-app.c
@@ -121,7 +121,7 @@ error:
ERR(str_printf(&str, "Front: "));\
ERR(print_description(&str, descs + properties[SG3D_FRONT]));\
ERR(str_printf(&str, "\n"));\
- ERR(logger_print(stardis->logger, LOG_OUTPUT, str_cget(&str))); \
+ ERR(logger_print(stardis->logger, LOG_OUTPUT, "%s", str_cget(&str))); \
}\
str_clear(&str);\
if(!back_defined)\
@@ -130,7 +130,7 @@ error:
ERR(str_printf(&str, "Back: "));\
ERR(print_description(&str, descs + properties[SG3D_BACK]));\
ERR(str_printf(&str, "\n"));\
- ERR(logger_print(stardis->logger, LOG_OUTPUT, str_cget(&str))); \
+ ERR(logger_print(stardis->logger, LOG_OUTPUT, "%s", str_cget(&str))); \
}\
str_clear(&str);\
if(!connect_defined)\
@@ -139,7 +139,7 @@ error:
ERR(str_printf(&str, "Connection: "));\
ERR(print_description(&str, descs + properties[SG3D_INTFACE]));\
ERR(str_printf(&str, "\n"));\
- ERR(logger_print(stardis->logger, LOG_OUTPUT, str_cget(&str))); \
+ ERR(logger_print(stardis->logger, LOG_OUTPUT, "%s", str_cget(&str))); \
}\
str_release(&str);\
}
@@ -528,7 +528,7 @@ stardis_init
ERR(print_description(&str,
darray_descriptions_cdata_get(&stardis->descriptions) + i));
ERR(str_printf(&str, "\n"));
- logger_print(stardis->logger, LOG_OUTPUT, str_cget(&str));
+ logger_print(stardis->logger, LOG_OUTPUT, "%s", str_cget(&str));
}
str_release(&str);
@@ -640,3 +640,73 @@ stardis_release(struct stardis* stardis)
SDIS(medium_ref_put(darray_media_ptr_data_get(&stardis->media)[i]));
darray_media_ptr_release(&stardis->media);
}
+
+/*******************************************************************************
+ * rsys/str additions
+ ******************************************************************************/
+static res_T
+ensure_allocated(struct str* str, const size_t len, const char keep_old)
+{
+ char* buf = NULL;
+ const size_t alloc_granularity = 32;
+ size_t mod = 0;
+ size_t new_len = 0;
+ size_t new_size = 0;
+ ASSERT(str);
+
+ if (len * sizeof(char) <= str->allocated)
+ return RES_OK;
+
+ mod = len % alloc_granularity;
+ new_len = !mod ? len : len - mod + alloc_granularity;
+ new_size = new_len * sizeof(char);
+ buf = MEM_ALLOC(str->allocator, new_size);
+ if (!buf)
+ return RES_MEM_ERR;
+
+ if (keep_old) {
+ strncpy(buf, str->cstr, new_len - 1);
+ buf[new_len - 1] = '\0';
+ }
+
+ str->allocated = new_len * sizeof(char);
+ if (str->cstr != str->buffer)
+ MEM_RM(str->allocator, str->cstr);
+
+ str->cstr = buf;
+ return RES_OK;
+}
+
+res_T
+str_printf
+(struct str* str,
+ const char* fmt, ...)
+{
+ res_T res = RES_OK;
+ size_t initial_len, left;
+ va_list args_cp;
+ size_t needed = 0;
+ va_list args;
+ ASSERT(str && fmt);
+ va_start(args, fmt);
+
+ initial_len = str_len(str);
+ ASSERT(str->allocated >= initial_len);
+ left = str->allocated - initial_len;
+ if (left) {
+ VA_COPY(args_cp, args);
+ needed = (size_t)vsnprintf(str->cstr + initial_len, left, fmt, args_cp);
+ }
+ if (needed >= left) {
+ ERR(ensure_allocated(str, initial_len + needed + 1, 1));
+ ASSERT(str->allocated >= initial_len);
+ left = str->allocated - initial_len;
+ needed = (size_t)vsnprintf(str->cstr + initial_len, left, fmt, args);
+ CHK(needed < left);
+ }
+ va_end(args);
+end:
+ return res;
+error:
+ goto end;
+}
diff --git a/src/stardis-app.h b/src/stardis-app.h
@@ -18,6 +18,7 @@
#include <sdis.h>
#include <limits.h>
+#include <stdarg.h>
/* Forward declarations */
struct logger;
@@ -105,76 +106,16 @@ error:
}
/*******************************************************************************
- * rsys/str additions
+ * rsys/str addition
******************************************************************************/
-static res_T
-ensure_allocated(struct str* str, const size_t len, const char keep_old)
-{
- char* buf = NULL;
- const size_t alloc_granularity = 32;
- size_t mod = 0;
- size_t new_len = 0;
- size_t new_size = 0;
- ASSERT(str);
-
- if(len * sizeof(char) <= str->allocated)
- return RES_OK;
-
- mod = len % alloc_granularity;
- new_len = !mod ? len : len - mod + alloc_granularity;
- new_size = new_len * sizeof(char);
- buf = MEM_ALLOC(str->allocator, new_size);
- if(!buf)
- return RES_MEM_ERR;
-
- if(keep_old) {
- strncpy(buf, str->cstr, new_len - 1);
- buf[new_len - 1] = '\0';
- }
-
- str->allocated = new_len * sizeof(char);
- if(str->cstr != str->buffer)
- MEM_RM(str->allocator, str->cstr);
-
- str->cstr = buf;
- return RES_OK;
-}
-
-static res_T
+extern LOCAL_SYM res_T
str_printf
-(struct str* str,
- const char* fmt, ...)
+ (struct str* str,
+ const char* fmt, ...)
#ifdef COMPILER_GCC
- __attribute((format(printf, 3, 4)))
+ __attribute((format(printf, 2, 3)))
#endif
-{
- res_T res = RES_OK;
- size_t initial_len, left;
- va_list args_cp;
- int needed = 0;
- va_list args;
- ASSERT(str && fmt);
- va_start(args, fmt);
-
- initial_len = str_len(str);
- left = str->allocated - initial_len;
- ASSERT(left >= 0);
- if(left) {
- VA_COPY(args_cp, args);
- needed = vsnprintf(str->cstr+ initial_len, left, fmt, args_cp);
- }
- if(needed >= left) {
- ERR(ensure_allocated(str, initial_len + needed + 1, 1));
- left = str->allocated - initial_len;
- needed = vsnprintf(str->cstr+ initial_len, left, fmt, args);
- CHK(needed < left);
- }
- va_end(args);
-end:
- return res;
-error:
- goto end;
-}
+ ;
/******************************************************************************/
struct mat_fluid {
@@ -213,10 +154,12 @@ print_fluid
ASSERT(str && f);
ERR(str_printf(str, "Fluid '%s': rho=%g cp=%g",
str_cget(&f->name), f->rho, f->cp));
- if(f->tinit >= 0)
+ if(f->tinit >= 0) {
ERR(str_printf(str, " Tinit=%g", f->tinit));
- if(f->imposed_temperature >= 0)
+ }
+ if(f->imposed_temperature >= 0) {
ERR(str_printf(str, " Temp=%g", f->imposed_temperature));
+ }
end:
return res;
error:
@@ -277,12 +220,15 @@ print_solid
ASSERT(str && s);
ERR(str_printf(str, "Solid '%s': lambda=%g rho=%g cp=%g delta=%g",
str_cget(&s->name), s->lambda, s->rho, s->cp, s->delta));
- if(s->vpower != 0)
+ if(s->vpower != 0) {
ERR(str_printf(str, " VPower=%g", s->vpower));
- if(s->tinit >= 0)
+ }
+ if(s->tinit >= 0) {
ERR(str_printf(str, " Tinit=%g", s->tinit));
- if(s->imposed_temperature >= 0)
+ }
+ if(s->imposed_temperature >= 0) {
ERR(str_printf(str, " Temp=%g", s->imposed_temperature));
+ }
end:
return res;
error:
@@ -403,10 +349,10 @@ print_t_boundary
(type == DESC_BOUND_T_FOR_SOLID ? "solid" : "fluid"),
str_cget(&b->name), b->imposed_temperature));
- if(type == DESC_BOUND_T_FOR_FLUID)
+ if(type == DESC_BOUND_T_FOR_FLUID) {
ERR(str_printf(str, "emissivity=%g, specular_fraction=%g hc=%g ",
b->emissivity, b->specular_fraction, b->hc));
-
+ }
ERR(str_printf(str, "(using medium %u as external medium)", b->mat_id));
end:
return res;
@@ -685,7 +631,7 @@ struct camera {
double time;
};
-static void
+static INLINE void
init_camera(struct camera* cam) {
d3_splat(cam->pos, 0);
d3_splat(cam->tgt, 0);
@@ -696,7 +642,7 @@ init_camera(struct camera* cam) {
cam->time = INF;
}
-static void
+static INLINE void
log_err(const char* msg, void* ctx)
{
ASSERT(msg);
@@ -708,7 +654,7 @@ log_err(const char* msg, void* ctx)
#endif
}
-static void
+static INLINE void
log_warn(const char* msg, void* ctx)
{
ASSERT(msg);
@@ -720,7 +666,7 @@ log_warn(const char* msg, void* ctx)
#endif
}
-static void
+static INLINE void
log_prt(const char* msg, void* ctx)
{
ASSERT(msg);
diff --git a/src/stardis-compute.c b/src/stardis-compute.c
@@ -562,7 +562,6 @@ read_compute_surface
struct sstl* sstl = NULL;
struct add_geom_ctx add_geom_ctx;
struct sg3d_geometry_add_callbacks callbacks = SG3D_ADD_CALLBACKS_NULL__;
- int new_triangles_initialized = 0;
const char* file;
ASSERT(stardis);
@@ -584,7 +583,6 @@ read_compute_surface
ASSERT(add_geom_ctx.stl_desc.vertices_count <= UINT_MAX
&& add_geom_ctx.stl_desc.triangles_count <= UINT_MAX);
- new_triangles_initialized = 1;
add_geom_ctx.custom = &stardis->compute_surface;
res = sg3d_geometry_add(
diff --git a/src/stardis-output.c b/src/stardis-output.c
@@ -656,7 +656,7 @@ dump_map
const size_t* idx;
size_t sz;
unsigned szp;
- const struct sdis_estimator* const* est;
+ struct sdis_estimator* const* est;
ASSERT(stardis && estimators && stream);
@@ -765,7 +765,8 @@ dump_compute_region_at_the_end_of_vtk
size_t prim = darray_size_t_cdata_get(&stardis->compute_surface.primitives)[j];
enum sdis_side side = darray_sides_cdata_get(&stardis->compute_surface.sides)[j];
ASSERT(prim <= tsz);
- v[(unsigned)prim] |= (side == SDIS_FRONT ? 1 : 2);
+ v[(unsigned)prim] =
+ (unsigned char)(v[(unsigned)prim] | (side == SDIS_FRONT ? 1 : 2));
}
/* For triangles in compute surface with error v==MAX */
diff --git a/src/stardis-parsing.c b/src/stardis-parsing.c
@@ -337,8 +337,9 @@ print_multiple_modes
m = BIT(b++);
if(m & dont) continue;
if(m & modes) {
- int n = snprintf(buf, left, (fst ? "-%c" : ", -%c"), mode_option(m));
- if(n < 0 || n >= left) FATAL("Buffer is too small.");
+ size_t n =
+ (size_t)snprintf(buf, left, (fst ? "-%c" : ", -%c"), mode_option(m));
+ if(n >= left) FATAL("Buffer is too small.");
left -= n;
buf += n;
fst = 0;
diff --git a/src/stardis-parsing.h b/src/stardis-parsing.h
@@ -12,7 +12,6 @@
struct camera;
struct logger;
-enum log_type;
struct mem_allocator;
struct stardis;