From e8e411ad0450b0f4f8ad2d70d6a0f73a3ad5344a Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Sat, 26 Jul 2014 21:25:06 +0200 Subject: [PATCH] Fix thread safety of llList2CSV. --- lslopt/lslbasefuncs.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/lslopt/lslbasefuncs.py b/lslopt/lslbasefuncs.py index 2fa4de2..7328e45 100644 --- a/lslopt/lslbasefuncs.py +++ b/lslopt/lslbasefuncs.py @@ -916,11 +916,16 @@ def llIntegerToBase64(x): def llList2CSV(lst): assert islist(lst) - # WARNING: FIXME: NOT THREAD SAFE - tmp = lslcommon.LSO - lslcommon.LSO = True # Use LSO rules for float to string conversion - ret = u', '.join(InternalList2Strings(lst)) - lslcommon.LSO = tmp + ret = [] + for elem in val: + # This always uses LSO rules for float to string. + if type(elem) == float: + ret.append(u'%.6f' % elem) + elif type(elem) in (Vector, Quaternion): + ret.append(u'<' + u', '.join(list(u'%.6f' % x for x in elem)) + u'>') + else: + ret.append(InternalTypecast(elem, unicode, InList=True, f32=True)) + ret = u', '.join(ret) return ret def llList2Float(lst, pos):