SynsetPtr GetSynsetForSense(char *sensekey) { long offset; /* Pass in sense key and return parsed sysnet structure */ if ((offset = GetDataOffset(sensekey))) return(read_synset(GetPOS(sensekey), offset, GetWORD(sensekey))); else return(NULL); }
void LASHeader::DeleteVLR(uint32_t index) { if (index >= m_vlrs.size()) throw std::out_of_range("index is out of range"); std::vector<LASVariableRecord>::iterator i = m_vlrs.begin() + index; // Deal with the dataoffset when deleting uint32_t size = (*i).GetTotalSize(); m_vlrs.erase(i); m_recordsCount = static_cast<uint32_t>(m_vlrs.size()); SetDataOffset(GetDataOffset() - size); }
void BidirBuffer::Clear() { SetDataOffset(GetDataOffset()); }
void BidirBuffer::PushFront(const void* pSrc, int size ) { if (size == 0) return; // ignore SetDataOffset(GetDataOffset() - size, m_dataSize + size); memcpy(Front(), pSrc, size); }
byte BidirBuffer::PopFront() { byte result = *Front(); SetDataOffset(GetDataOffset() + 1, m_dataSize - 1); return result; }
byte BidirBuffer::PopBack() { byte result = *Back(); SetDataOffset(GetDataOffset(), m_dataSize - 1); return result; }
void BidirBuffer::AddSpaceFront( int distance ) /* size += distance */ { SetDataOffset(GetDataOffset() - distance, m_dataSize + distance); }
void BidirBuffer::AddSpaceBack( int distance ) /* size += distance */ { SetDataOffset(GetDataOffset(), m_dataSize + distance); }
static void DoDataInit( PTYPE var_type ) { //========================================== // Do data initialization. int const_size; int var_size; int size; byte *const_ptr; segment_id seg; seg_offset offset; byte const_buff[sizeof(ftn_type)]; if( ( DtConstType == PT_CHAR ) || ( DtConstType == PT_NOTYPE ) ) { const_size = DtConst->u.lt.length; const_ptr = &DtConst->u.lt.value; } else { const_size = DtConst->u.cn.size; const_ptr = (byte *)(&DtConst->u.cn.value); } var_size = DtItemSize; seg = GetDataSegId( InitVar ); offset = GetDataOffset( InitVar ); DtInit( seg, offset ); if( DtConstType == PT_CHAR ) { if( const_size >= var_size ) { DtBytes( const_ptr, var_size ); } else { DtBytes( const_ptr, const_size ); DtIBytes( ' ', var_size - const_size ); } } else if( ( var_type == PT_CHAR ) && IntType( DtConstType ) ) { DtBytes( const_ptr, sizeof( char ) ); if( var_size > sizeof( char ) ) { DtIBytes( ' ', var_size - sizeof( char ) ); } } else if( DtConstType == PT_NOTYPE ) { if( var_type != PT_CHAR ) { size = var_size; while( size > const_size ) { size--; const_buff[ size ] = 0; } while( size > 0 ) { size--; const_buff[ size ] = *const_ptr; const_ptr++; } const_ptr = const_buff; const_size = var_size; } if( const_size < var_size ) { DtIBytes( 0, var_size - const_size ); var_size = const_size; } else { const_ptr += const_size - var_size; } DtBytes( const_ptr, var_size ); } else if( DtConstType <= PT_LOG_4 ) { DtBytes( const_ptr, var_size ); } else { // numeric to numeric if( DtConstType != var_type ) { DataCnvTab[ ( var_type - PT_INT_1 ) * CONST_TYPES + ( DtConstType - PT_INT_1 ) ]( (ftn_type *)const_ptr, (ftn_type *)&const_buff ); const_ptr = const_buff; } // Temporary fix for identical precision between front end and code generator. { char fmt_buff[CONVERSION_BUFFER+1]; float_handle cf; if( (var_type == PT_REAL_4) || (var_type == PT_CPLX_8) ) { CnvS2S( (single *)const_ptr, fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff, BETypeLength( TY_SINGLE ) ); BFFree( cf ); } else if( (var_type == PT_REAL_8) || (var_type == PT_CPLX_16) ) { CnvD2S( (double *)const_ptr, fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff, BETypeLength( TY_DOUBLE ) ); BFFree( cf ); } else if( (var_type == PT_REAL_16) || (var_type == PT_CPLX_32) ) { CnvX2S( (extended *)const_ptr, fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff, BETypeLength( TY_LONGDOUBLE ) ); BFFree( cf ); } if( var_type == PT_CPLX_8 ) { CnvS2S( (single *)(const_ptr + sizeof( single )), fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff + sizeof( single ), BETypeLength( TY_SINGLE ) ); BFFree( cf ); } else if( var_type == PT_CPLX_16 ) { CnvD2S( (double *)(const_ptr + sizeof( double )), fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff + sizeof( double ), BETypeLength( TY_DOUBLE ) ); BFFree( cf ); } else if( var_type == PT_CPLX_32 ) { CnvX2S( (extended *)(const_ptr + sizeof( extended )), fmt_buff ); cf = BFCnvSF( fmt_buff ); BFCnvTarget( cf, const_buff + sizeof( extended ), BETypeLength( TY_LONGDOUBLE ) ); BFFree( cf ); } if( (var_type >= PT_REAL_4) && (var_type <= PT_CPLX_32) ) { const_ptr = const_buff; } } // End of temporary fix. DtBytes( const_ptr, var_size ); } DtItemSize = 0; }