void ArrayImpl::swap(size_t i1, size_t i2) { DEFINEMETHODNAME; if(i1 >= m_size) { indexError(method, i1); } if(i2 >= m_size) { indexError(method, i2); } if(i1 != i2) { std::swap(m_elem[i1], m_elem[i2]); } m_updateCount++; }
void Parser::Paren() { switch(lookahead) { case T_NUMBER: match(T_NUMBER); if( evaluate == true) { value = scanner.getNumber(); } break; case T_OPENPAREN: match(T_OPENPAREN); SubAdd(); match(T_CLOSEPAREN); break; case T_M: match(T_M); match(T_OPENBRACKET); SubAdd(); if( evaluate == true) { if( (value<0) || (value>99) ) indexError(scanner.lineNumber(), value); value = m[value]; } match(T_CLOSEBRACKET); break; default: parseError(scanner.lineNumber(), lookahead); break; } }
void Parser:: Statement() { switch(lookahead) { int tempVal; case T_M: match(T_M); match(T_OPENBRACKET); Expression(); if( evaluate == true) { tempVal= value; } match(T_CLOSEBRACKET); match(T_EQUALS); Expression(); if( evaluate == true) { if( (tempVal<0) || (tempVal>99) ) indexError(scanner.lineNumber(), tempVal); m[tempVal] = value; } break; case T_PRINT: match(T_PRINT); Expression(); if( evaluate == true ) { std::cout << value << std::endl; } break; default: parseError(scanner.lineNumber(), lookahead); break; } }
ByteArray &ByteArray::insertConstant(size_t index, BYTE b, size_t count) { if(count == 0) { return *this; } if(index > m_size) { indexError(__TFUNCTION__, index); } const size_t newSize = m_size + count; if(newSize > m_capacity) { const size_t newCapacity = getCapacityCeil(2 * newSize); BYTE *newData = allocateBytes(newCapacity); if(index > 0) { memcpy(newData, m_data, index); } if(index < m_size) { memcpy(newData+index+count, m_data+index, m_size-index); } if(m_data != NULL) { deallocateBytes(m_data); } m_data = newData; m_capacity = newCapacity; } else if(index < m_size) { memmove(m_data+index+count, m_data+index, m_size-index); } memset(m_data+index, b, count); m_size = newSize; return *this; }
/*! Construct a new SIM icon reader and attach it to \a parent. The icon files will be read from \a service. */ QSimIconReader::QSimIconReader( const QString& service, QObject *parent ) : QObject( parent ) { d = new QSimIconReaderPrivate(); d->service = service; d->numIcons = -1; d->invalidIndex = false; d->indexRead = false; // Request the number of icons from the SIM index file. d->indexFile = new QRecordBasedSimFile( "7F105F504F20", service, this ); connect( d->indexFile, SIGNAL(error(QTelephony::SimFileError)), this, SLOT(indexError()) ); connect( d->indexFile, SIGNAL(fileInfo(int,int)), this, SLOT(indexFileInfo(int,int)) ); connect( d->indexFile, SIGNAL(readDone(QByteArray,int)), this, SLOT(indexRead(QByteArray,int)) ); d->indexFile->requestFileInfo(); }
bool ArrayImpl::add(size_t i, const void *e, size_t count) { DEFINEMETHODNAME; if(i > m_size) { indexError(method, i); } if(count == 0) { return false; } if(m_size + count > m_capacity) { setCapacity(2*(m_size + count) + 5); } if(i < m_size) { memmove(m_elem+i+count, m_elem+i, (m_size-i)*sizeof(m_elem[0])); } m_size += count; while(count--) { m_elem[i++] = m_objectManager->cloneObject(e); } m_updateCount++; return true; }
void ArrayImpl::removeIndex(size_t i, size_t count) { DEFINEMETHODNAME; if(count == 0) { return; } const size_t j = i + count; if(j > m_size) { indexError(method,j); } for(size_t k = i; k < j; k++) { m_objectManager->deleteObject(m_elem[k]); } if(j < m_size) { memmove(m_elem+i, m_elem+j, (m_size-j)*sizeof(m_elem[0])); // m_elem[m_size] = NULL; } m_size -= count; if(m_size < m_capacity/2 && m_capacity > 10) { setCapacity(_max(10, m_size)); } m_updateCount++; }
INLINELINKAGE void MSVectorImpl::vectorIndexError(unsigned int index_) const { indexError(index_); }