Fix LC_NUMERIC dependent number formatting 17/123717/1
authorHannes Janetzek <hannes.janetzek@gmail.com>
Tue, 28 Mar 2017 16:59:39 +0000 (18:59 +0200)
committerHannes Janetzek <hannes.janetzek@gmail.com>
Thu, 6 Apr 2017 18:10:52 +0000 (20:10 +0200)
Change-Id: I574f3770d8a0e8c14318eaa9bac1c480595f0d76

src/mapzen/tangram_view.cpp

index 52dcb76..1516c2d 100644 (file)
@@ -614,7 +614,6 @@ mapzen_error_e TangramView::getBitmapMarkerImage(maps_view_object_h object, unsi
 
 mapzen_error_e TangramView::updateMarker(maps_view_object_h object, Tangram::MarkerID tvMarker)
 {
-       std::string styleString = "";
        maps_coordinates_h mapsCoord = nullptr;
        double lat = 0.0, lng = 0.0;
        int markerWidth = 0, markerHeight = 0;
@@ -622,7 +621,7 @@ mapzen_error_e TangramView::updateMarker(maps_view_object_h object, Tangram::Mar
        int error = MAPS_ERROR_NONE;
        unsigned char *imgData = nullptr;
 
-       const char* styleFormat = "{ style: 'sdk-point-overlay', color: white, size: [%fpx, %fpx], collide: false, anchor: %s, transition: { [show, hide]: { time: 0s } } }";
+       const char* styleFormat = "{ style: 'sdk-point-overlay', color: white, size: [%dpx, %dpx], collide: false, anchor: %s, transition: { [show, hide]: { time: 0s } } }";
 
        static std::string anchor;
 
@@ -667,12 +666,11 @@ mapzen_error_e TangramView::updateMarker(maps_view_object_h object, Tangram::Mar
                float scaledWidth = scaleFactor * markerWidth;
                float scaledHeight = scaleFactor * markerHeight;
 
-               int sz = std::snprintf(nullptr, 0, styleFormat, scaledWidth, scaledHeight, anchor.c_str());
-               styleString.resize(sz+1);
-               std::snprintf(&styleString[0], styleString.size(), styleFormat, scaledWidth, scaledHeight, anchor.c_str());
+               char styleString[256];
+               std::snprintf(styleString, sizeof(styleString), styleFormat, int(scaledWidth), int(scaledHeight), anchor.c_str());
 
-               MAPS_LOGD("Marker Style String: %s", styleString.c_str());
-               m_map->markerSetStyling(tvMarker, styleString.c_str());
+               MAPS_LOGD("Marker Style String: %s", styleString);
+               m_map->markerSetStyling(tvMarker, styleString);
 
                error = maps_view_object_marker_get_coordinates(object, &mapsCoord);
                if (error != MAPS_ERROR_NONE) { break; }
@@ -703,7 +701,6 @@ mapzen_error_e TangramView::updateMarker(maps_view_object_h object, Tangram::Mar
 
 mapzen_error_e TangramView::updatePolyline(maps_view_object_h object, Tangram::MarkerID tvMarker)
 {
-       std::string styleString = "";
        int error = MAPS_ERROR_NONE;
        Tangram::Coordinates coords = {};
        unsigned char r = 0, g = 0, b = 0, a = 0;
@@ -718,13 +715,12 @@ mapzen_error_e TangramView::updatePolyline(maps_view_object_h object, Tangram::M
                error = maps_view_object_polyline_get_width(object, &width);
                if (error != MAPS_ERROR_NONE) { break; }
 
-               int sz = std::snprintf(nullptr, 0, styleFormat, r, g, b, a, width);
-               styleString.resize(sz+1);
-               std::snprintf(&styleString[0], styleString.size(), styleFormat, r, g, b, a, width);
+               char styleString[256];
+               std::snprintf(styleString, sizeof(styleString), styleFormat, r, g, b, a, width);
 
-               MAPS_LOGD("Polyline Style String: %s", styleString.c_str());
+               MAPS_LOGD("Polyline Style String: %s", styleString);
 
-               m_map->markerSetStyling(tvMarker, styleString.c_str());
+               m_map->markerSetStyling(tvMarker, styleString);
 
                error = maps_view_object_polyline_foreach_point(object, emplaceCoord, &coords);
                if (error != MAPS_ERROR_NONE) { break; }
@@ -737,7 +733,6 @@ mapzen_error_e TangramView::updatePolyline(maps_view_object_h object, Tangram::M
 
 mapzen_error_e TangramView::updatePolygon(maps_view_object_h object, Tangram::MarkerID tvMarker)
 {
-       std::string styleString = "";
        int error = MAPS_ERROR_NONE;
        Tangram::Coordinates coords = {};
        unsigned char r = 0, g = 0, b = 0, a = 0;
@@ -747,13 +742,12 @@ mapzen_error_e TangramView::updatePolygon(maps_view_object_h object, Tangram::Ma
                error = maps_view_object_polygon_get_fill_color(object, &r, &g, &b, &a);
                if (error != MAPS_ERROR_NONE) { break; }
 
-               int sz = std::snprintf(nullptr, 0, styleFormat, r, g, b, a);
-               styleString.resize(sz+1);
-               std::snprintf(&styleString[0], styleString.size(), styleFormat, r, g, b, a);
+               char styleString[256];
+               std::snprintf(styleString, sizeof(styleString), styleFormat, r, g, b, a);
 
-               MAPS_LOGD("Polygon Style String: %s", styleString.c_str());
+               MAPS_LOGD("Polygon Style String: %s", styleString);
 
-               m_map->markerSetStyling(tvMarker, styleString.c_str());
+               m_map->markerSetStyling(tvMarker, styleString);
 
                error = maps_view_object_polygon_foreach_point(object, emplaceCoord, &coords);
                if (error != MAPS_ERROR_NONE) { break; }