[Code Clean] Enforce C89 for all .C files
authorMyungJoo Ham <myungjoo.ham@samsung.com>
Tue, 3 Jul 2018 04:28:04 +0000 (13:28 +0900)
committer오세원/Data Service Lab(SR)/Engineer/삼성전자 <sewon.oh@samsung.com>
Wed, 4 Jul 2018 01:20:17 +0000 (10:20 +0900)
Gstreamer requires compatibility with C89 for good plugins.
This commit fixes all non-C89 compliant code of C and
enforces C89 for all C code in Cflag.

Fixes #206

Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
CMakeLists.txt
gst/tensor_filter/tensor_filter.c
gst/tensor_filter/tensor_filter.h
gst/tensor_filter/tensor_filter_custom.c
gst/tensor_filter/tensor_filter_tensorflow_lite.c
nnstreamer_example/custom_example_scaler/nnstreamer_customfilter_example_scaler.c

index fcbe95f..d01fe52 100644 (file)
@@ -52,14 +52,19 @@ ENDIF (NOT INCLUDE_INSTALL_DIR)
 pkg_check_modules(pkgs REQUIRED ${PKG_MODULES})
 
 INCLUDE_DIRECTORIES(
-       ${pkgs_INCLUDE_DIRS}
        ${CMAKE_SOURCE_DIR}/include
 )
+INCLUDE_DIRECTORIES(
+       SYSTEM
+       ${pkgs_INCLUDE_DIRS}
+)
 LINK_DIRECTORIES(${pkgs_LIBRARY_DIRS})
 FOREACH(flag ${pkgs_CFALGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
 ENDFOREACH(flag)
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fPIC -g")
+
+# Gstreamer uses C89
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -Wall -Werror -fPIC -g -std=c89")
 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXXFLAGS} -Wall -Werror -fPIC -g")
 
 # Provide common data
index fbb82ef..444f2eb 100644 (file)
@@ -325,7 +325,7 @@ gst_tensor_filter_get_rank (tensor_dim dimension)
     if (dimension[i] > 1)
       rank = i + 1;
   }
-  if (rank == 0)                // a scalar (assume it is 1-dim vector)
+  if (rank == 0)                /* a scalar (assume it is 1-dim vector) */
     return 1;
   return rank;
 }
index e3b0829..3d908de 100644 (file)
@@ -115,7 +115,7 @@ struct _GstTensor_Filter
  *  @return the pointer to GstTensor_Filter containing p as privateData
  */
 #define GstTensor_Filter_of_privateData(p) ({ \
-    const typeof( ((GstTensor_Filter *)0)->privateData ) *__mptr = (p); \
+    const void **__mptr = (const void **)(p); \
     (GstTensor_Filter *)( (char *)__mptr - offsetof(GstTensor_Filter, privateData) );})
 
 /**
index a170b55..ac1642d 100644 (file)
@@ -85,7 +85,6 @@ custom_loadlib (const GstTensor_Filter * filter, void **private_data)
 
   ptr = g_new0 (internal_data, 1);      /* Fill Zero! */
   *private_data = ptr;
-  g_assert (filter->privateData == ptr);
   ptr->parent = GstTensor_Filter_of_privateData (private_data);
 
   /* Load .so if this is the first time for this instance. */
index e7bbe0e..051b103 100644 (file)
@@ -89,7 +89,7 @@ tflite_getInputDim (const GstTensor_Filter * filter, void **private_data,
   int retval = tflite_loadModelFile (filter, private_data);
   /* @TODO fill in *inputDimension (uint32_t[MAX_RANK]), *type */
 
-  return retval;                // NYI
+  return retval;                /* NYI */
 }
 
 /**
index c2bf483..ad0932b 100644 (file)
@@ -31,13 +31,23 @@ typedef struct _pt_data
   uint32_t new_x;
 } pt_data;
 
+static char *
+_strdup (const char *src)
+{
+  size_t len = strlen (src) + 1;
+  char *dest = (char *) malloc (sizeof (char) * len);
+  strncpy (dest, src, len - 1);
+  dest[len - 1] = '\0';
+  return dest;
+}
+
 static void *
 pt_init (const GstTensor_Filter_Properties * prop)
 {
   pt_data *data = (pt_data *) malloc (sizeof (pt_data));
 
   if (prop->customProperties && strlen (prop->customProperties) > 0)
-    data->property = strdup (prop->customProperties);
+    data->property = _strdup (prop->customProperties);
   else
     data->property = NULL;
   data->new_x = 0;