diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-06-20 13:52:47 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2019-06-20 13:52:47 (GMT) |
commit | 8a887d823434875d32df819ad7791504415aa15f (patch) | |
tree | 91397c2a23d2c387bef7bb5442f62ffe6693d618 /generic/tkImgSVGnano.c | |
parent | ea636c850864a7b4a1086407483247fa2178a9c9 (diff) | |
download | tk-8a887d823434875d32df819ad7791504415aa15f.zip tk-8a887d823434875d32df819ad7791504415aa15f.tar.gz tk-8a887d823434875d32df819ad7791504415aa15f.tar.bz2 |
Handle SVG string > 2G, when compiled with Tcl 9 headers. Make TCL_INDEX_NONE symbol usable in Tk, even when compiled against Tcl 8.6 headers.
Diffstat (limited to 'generic/tkImgSVGnano.c')
-rw-r--r-- | generic/tkImgSVGnano.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/generic/tkImgSVGnano.c b/generic/tkImgSVGnano.c index f86c45e..b8776fe 100644 --- a/generic/tkImgSVGnano.c +++ b/generic/tkImgSVGnano.c @@ -62,7 +62,7 @@ static int StringReadSVG(Tcl_Interp *interp, Tcl_Obj *dataObj, int destX, int destY, int width, int height, int srcX, int srcY); static NSVGimage * ParseSVGWithOptions(Tcl_Interp *interp, - const char *input, int length, Tcl_Obj *format, + const char *input, size_t length, Tcl_Obj *format, RastOpts *ropts); static int RasterizeSVG(Tcl_Interp *interp, Tk_PhotoHandle imageHandle, NSVGimage *nsvgImage, @@ -118,19 +118,19 @@ FileMatchSVG( int *widthPtr, int *heightPtr, Tcl_Interp *interp) { - int length; + size_t length; Tcl_Obj *dataObj = Tcl_NewObj(); const char *data; RastOpts ropts; NSVGimage *nsvgImage; CleanCache(interp); - if (Tcl_ReadChars(chan, dataObj, -1, 0) == -1) { + if (Tcl_ReadChars(chan, dataObj, -1, 0) == TCL_IO_FAILURE) { /* in case of an error reading the file */ Tcl_DecrRefCount(dataObj); return 0; } - data = Tcl_GetStringFromObj(dataObj, &length); + data = TkGetStringFromObj(dataObj, &length); nsvgImage = ParseSVGWithOptions(interp, data, length, formatObj, &ropts); Tcl_DecrRefCount(dataObj); if (nsvgImage != NULL) { @@ -178,7 +178,7 @@ FileReadSVG( int width, int height, int srcX, int srcY) { - int length; + size_t length; const char *data; RastOpts ropts; NSVGimage *nsvgImage = GetCachedSVG(interp, chan, formatObj, &ropts); @@ -186,14 +186,14 @@ FileReadSVG( if (nsvgImage == NULL) { Tcl_Obj *dataObj = Tcl_NewObj(); - if (Tcl_ReadChars(chan, dataObj, -1, 0) == -1) { + if (Tcl_ReadChars(chan, dataObj, -1, 0) == TCL_IO_FAILURE) { /* in case of an error reading the file */ Tcl_DecrRefCount(dataObj); Tcl_SetObjResult(interp, Tcl_NewStringObj("read error", -1)); Tcl_SetErrorCode(interp, "TK", "IMAGE", "SVG", "READ_ERROR", NULL); return TCL_ERROR; } - data = Tcl_GetStringFromObj(dataObj, &length); + data = TkGetStringFromObj(dataObj, &length); nsvgImage = ParseSVGWithOptions(interp, data, length, formatObj, &ropts); Tcl_DecrRefCount(dataObj); @@ -230,13 +230,13 @@ StringMatchSVG( int *widthPtr, int *heightPtr, Tcl_Interp *interp) { - int length; + size_t length; const char *data; RastOpts ropts; NSVGimage *nsvgImage; CleanCache(interp); - data = Tcl_GetStringFromObj(dataObj, &length); + data = TkGetStringFromObj(dataObj, &length); nsvgImage = ParseSVGWithOptions(interp, data, length, formatObj, &ropts); if (nsvgImage != NULL) { *widthPtr = (int) ceil(nsvgImage->width * ropts.scale); @@ -281,13 +281,13 @@ StringReadSVG( int width, int height, int srcX, int srcY) { - int length; + size_t length; const char *data; RastOpts ropts; NSVGimage *nsvgImage = GetCachedSVG(interp, dataObj, formatObj, &ropts); if (nsvgImage == NULL) { - data = Tcl_GetStringFromObj(dataObj, &length); + data = TkGetStringFromObj(dataObj, &length); nsvgImage = ParseSVGWithOptions(interp, data, length, formatObj, &ropts); } @@ -317,7 +317,7 @@ static NSVGimage * ParseSVGWithOptions( Tcl_Interp *interp, const char *input, - int length, + size_t length, Tcl_Obj *formatObj, RastOpts *ropts) { @@ -576,14 +576,14 @@ CacheSVG( NSVGimage *nsvgImage, RastOpts *ropts) { - int length; + size_t length; const char *data; NSVGcache *cachePtr = GetCachePtr(interp); if (cachePtr != NULL) { cachePtr->dataOrChan = dataOrChan; if (formatObj != NULL) { - data = Tcl_GetStringFromObj(formatObj, &length); + data = TkGetStringFromObj(formatObj, &length); Tcl_DStringAppend(&cachePtr->formatString, data, length); } cachePtr->nsvgImage = nsvgImage; @@ -616,7 +616,7 @@ GetCachedSVG( Tcl_Obj *formatObj, RastOpts *ropts) { - int length; + size_t length; const char *data; NSVGcache *cachePtr = GetCachePtr(interp); NSVGimage *nsvgImage = NULL; @@ -624,7 +624,7 @@ GetCachedSVG( if ((cachePtr != NULL) && (cachePtr->nsvgImage != NULL) && (cachePtr->dataOrChan == dataOrChan)) { if (formatObj != NULL) { - data = Tcl_GetStringFromObj(formatObj, &length); + data = TkGetStringFromObj(formatObj, &length); if (strcmp(data, Tcl_DStringValue(&cachePtr->formatString)) == 0) { nsvgImage = cachePtr->nsvgImage; *ropts = cachePtr->ropts; |