From 665aa2ff8488cba60043b9715853f339059122e2 Mon Sep 17 00:00:00 2001 From: Tony Aldridge Date: Fri, 27 Jun 2014 14:38:21 +0100 Subject: [PATCH] Guard against invalid svg state --- c3.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/c3.js b/c3.js index 8652f38..aab174f 100644 --- a/c3.js +++ b/c3.js @@ -492,7 +492,11 @@ return svgLeft > 0 ? svgLeft : 0; } function getCurrentWidth() { - return __size_width ? __size_width : getParentWidth(); + var result = __size_width ? __size_width : getParentWidth(); + if (isNaN(result)) { + return 0; + } + return result; } function getCurrentHeight() { var h = __size_height ? __size_height : getParentHeight(); @@ -1932,10 +1936,16 @@ } function getPathBox(path) { - var box = path.getBoundingClientRect(), - items = [path.pathSegList.getItem(0), path.pathSegList.getItem(1)], - minX = items[0].x, minY = Math.min(items[0].y, items[1].y); - return {x: minX, y: minY, width: box.width, height: box.height}; + var box = path.getBoundingClientRect(); + + if (path.pathSegList.length >= 2) { + var items = [path.pathSegList.getItem(0), path.pathSegList.getItem(1)], + minX = items[0].x, minY = Math.min(items[0].y, items[1].y); + return {x: minX, y: minY, width: box.width, height: box.height}; + } else { + //Some sort of fallback + return {x: 0, y: 0, width: 0, height: 0}; + } } function isOrderDesc() {