1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru/* 2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************** 3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Copyright (C) 2003, International Business Machines 4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru * Corporation and others. All Rights Reserved. 5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru ********************************************************************** 6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru */ 7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "layout/LETypes.h" 9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "layout/LEFontInstance.h" 10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "unicode/locid.h" 12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#include "layout/RunArrays.h" 14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_BEGIN 16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst char RunArray::fgClassID = 0; 18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruRunArray::RunArray(le_int32 initialCapacity) 20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru : fClientArrays(FALSE), fLimits(NULL), fCount(0), fCapacity(initialCapacity) 21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (initialCapacity > 0) { 23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLimits = LE_NEW_ARRAY(le_int32, fCapacity); 24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruRunArray::~RunArray() 28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (! fClientArrays) { 30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DELETE_ARRAY(fLimits); 31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLimits = NULL; 32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 33ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 34ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 35ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 RunArray::ensureCapacity() 36ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 37ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (fCount >= fCapacity) { 38ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (fCapacity == 0) { 39ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fCapacity = INITIAL_CAPACITY; 40ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru init(fCapacity); 41ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } else { 42ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fCapacity += (fCapacity < CAPACITY_GROW_LIMIT ? fCapacity : CAPACITY_GROW_LIMIT); 43ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru grow(fCapacity); 44ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 45ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 46ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 47ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return fCount++; 48ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 49ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 50ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid RunArray::init(le_int32 capacity) 51ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 52ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLimits = LE_NEW_ARRAY(le_int32, capacity); 53ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 54ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 55ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid RunArray::grow(le_int32 newCapacity) 56ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 57ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLimits = (le_int32 *) LE_GROW_ARRAY(fLimits, newCapacity); 58ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 59ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 60ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 RunArray::add(le_int32 limit) 61ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 62ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (fClientArrays) { 63ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return -1; 64ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 65ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 66ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 index = ensureCapacity(); 67ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 *limits = (le_int32 *) fLimits; 68ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 69ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru limits[index] = limit; 70ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 71ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return index; 72ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 73ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 74ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst char FontRuns::fgClassID = 0; 75ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 76ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruFontRuns::FontRuns(le_int32 initialCapacity) 77ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru : RunArray(initialCapacity), fFonts(NULL) 78ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 79ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (initialCapacity > 0) { 80ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fFonts = LE_NEW_ARRAY(const LEFontInstance *, initialCapacity); 81ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 82ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 83ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 84ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruFontRuns::~FontRuns() 85ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 86ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (! fClientArrays) { 87ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DELETE_ARRAY(fFonts); 88ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fFonts = NULL; 89ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 90ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 91ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 92ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid FontRuns::init(le_int32 capacity) 93ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 94ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::init(capacity); 95ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fFonts = LE_NEW_ARRAY(const LEFontInstance *, capacity); 96ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 97ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 98ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid FontRuns::grow(le_int32 capacity) 99ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 100ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::grow(capacity); 101ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fFonts = (const LEFontInstance **) LE_GROW_ARRAY(fFonts, capacity); 102ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 103ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 104ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 FontRuns::add(const LEFontInstance *font, le_int32 limit) 105ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 106ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 index = RunArray::add(limit); 107ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 108ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (index >= 0) { 109ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LEFontInstance **fonts = (LEFontInstance **) fFonts; 110ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 111ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fonts[index] = (LEFontInstance *) font; 112ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 113ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 114ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return index; 115ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 116ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 117ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst LEFontInstance *FontRuns::getFont(le_int32 run) const 118ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 119ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (run < 0 || run >= getCount()) { 120ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 121ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 122ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 123ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return fFonts[run]; 124ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 125ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 126ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst char LocaleRuns::fgClassID = 0; 127ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 128ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLocaleRuns::LocaleRuns(le_int32 initialCapacity) 129ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru : RunArray(initialCapacity), fLocales(NULL) 130ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 131ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (initialCapacity > 0) { 132ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLocales = LE_NEW_ARRAY(const Locale *, initialCapacity); 133ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 134ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 135ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 136ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruLocaleRuns::~LocaleRuns() 137ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 138ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (! fClientArrays) { 139ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DELETE_ARRAY(fLocales); 140ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLocales = NULL; 141ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 142ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 143ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 144ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid LocaleRuns::init(le_int32 capacity) 145ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 146ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::init(capacity); 147ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLocales = LE_NEW_ARRAY(const Locale *, capacity); 148ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 149ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 150ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid LocaleRuns::grow(le_int32 capacity) 151ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 152ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::grow(capacity); 153ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fLocales = (const Locale **) LE_GROW_ARRAY(fLocales, capacity); 154ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 155ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 156ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 LocaleRuns::add(const Locale *locale, le_int32 limit) 157ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 158ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 index = RunArray::add(limit); 159ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 160ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (index >= 0) { 161ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru Locale **locales = (Locale **) fLocales; 162ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 163ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru locales[index] = (Locale *) locale; 164ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 165ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 166ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return index; 167ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 168ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 169ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst Locale *LocaleRuns::getLocale(le_int32 run) const 170ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 171ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (run < 0 || run >= getCount()) { 172ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return NULL; 173ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 174ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 175ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return fLocales[run]; 176ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 177ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 178ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruconst char ValueRuns::fgClassID = 0; 179ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 180ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruValueRuns::ValueRuns(le_int32 initialCapacity) 181ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru : RunArray(initialCapacity), fValues(NULL) 182ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 183ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (initialCapacity > 0) { 184ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fValues = LE_NEW_ARRAY(le_int32, initialCapacity); 185ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 186ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 187ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 188ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruValueRuns::~ValueRuns() 189ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 190ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (! fClientArrays) { 191ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru LE_DELETE_ARRAY(fValues); 192ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fValues = NULL; 193ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 194ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 195ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 196ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid ValueRuns::init(le_int32 capacity) 197ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 198ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::init(capacity); 199ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fValues = LE_NEW_ARRAY(le_int32, capacity); 200ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 201ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 202ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queruvoid ValueRuns::grow(le_int32 capacity) 203ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 204ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru RunArray::grow(capacity); 205ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru fValues = (const le_int32 *) LE_GROW_ARRAY(fValues, capacity); 206ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 207ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 208ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 ValueRuns::add(le_int32 value, le_int32 limit) 209ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 210ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 index = RunArray::add(limit); 211ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 212ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (index >= 0) { 213ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru le_int32 *values = (le_int32 *) fValues; 214ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 215ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru values[index] = value; 216ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 217ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 218ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return index; 219ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 220ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 221ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Querule_int32 ValueRuns::getValue(le_int32 run) const 222ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru{ 223ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru if (run < 0 || run >= getCount()) { 224ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return -1; 225ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru } 226ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 227ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru return fValues[run]; 228ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru} 229ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru 230ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste QueruU_NAMESPACE_END 231