Lines Matching refs:pMem
182 SQLITE_NOINLINE int sqlite3VdbeMemTranslate(Mem *pMem, u8 desiredEnc){ in sqlite3VdbeMemTranslate() argument
190 assert( pMem->db==0 || sqlite3_mutex_held(pMem->db->mutex) ); in sqlite3VdbeMemTranslate()
191 assert( pMem->flags&MEM_Str ); in sqlite3VdbeMemTranslate()
192 assert( pMem->enc!=desiredEnc ); in sqlite3VdbeMemTranslate()
193 assert( pMem->enc!=0 ); in sqlite3VdbeMemTranslate()
194 assert( pMem->n>=0 ); in sqlite3VdbeMemTranslate()
201 sqlite3VdbeMemPrettyPrint(pMem, &acc); in sqlite3VdbeMemTranslate()
210 if( pMem->enc!=SQLITE_UTF8 && desiredEnc!=SQLITE_UTF8 ){ in sqlite3VdbeMemTranslate()
213 rc = sqlite3VdbeMemMakeWriteable(pMem); in sqlite3VdbeMemTranslate()
218 zIn = (u8*)pMem->z; in sqlite3VdbeMemTranslate()
219 zTerm = &zIn[pMem->n&~1]; in sqlite3VdbeMemTranslate()
226 pMem->enc = desiredEnc; in sqlite3VdbeMemTranslate()
237 pMem->n &= ~1; in sqlite3VdbeMemTranslate()
238 len = 2 * (sqlite3_int64)pMem->n + 1; in sqlite3VdbeMemTranslate()
245 len = 2 * (sqlite3_int64)pMem->n + 2; in sqlite3VdbeMemTranslate()
254 zIn = (u8*)pMem->z; in sqlite3VdbeMemTranslate()
255 zTerm = &zIn[pMem->n]; in sqlite3VdbeMemTranslate()
256 zOut = sqlite3DbMallocRaw(pMem->db, len); in sqlite3VdbeMemTranslate()
262 if( pMem->enc==SQLITE_UTF8 ){ in sqlite3VdbeMemTranslate()
277 pMem->n = (int)(z - zOut); in sqlite3VdbeMemTranslate()
281 if( pMem->enc==SQLITE_UTF16LE ){ in sqlite3VdbeMemTranslate()
340 pMem->n = (int)(z - zOut); in sqlite3VdbeMemTranslate()
343 assert( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len ); in sqlite3VdbeMemTranslate()
345 c = MEM_Str|MEM_Term|(pMem->flags&(MEM_AffMask|MEM_Subtype)); in sqlite3VdbeMemTranslate()
346 sqlite3VdbeMemRelease(pMem); in sqlite3VdbeMemTranslate()
347 pMem->flags = c; in sqlite3VdbeMemTranslate()
348 pMem->enc = desiredEnc; in sqlite3VdbeMemTranslate()
349 pMem->z = (char*)zOut; in sqlite3VdbeMemTranslate()
350 pMem->zMalloc = pMem->z; in sqlite3VdbeMemTranslate()
351 pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->z); in sqlite3VdbeMemTranslate()
359 sqlite3VdbeMemPrettyPrint(pMem, &acc); in sqlite3VdbeMemTranslate()
377 int sqlite3VdbeMemHandleBom(Mem *pMem){ in sqlite3VdbeMemHandleBom() argument
381 assert( pMem->n>=0 ); in sqlite3VdbeMemHandleBom()
382 if( pMem->n>1 ){ in sqlite3VdbeMemHandleBom()
383 u8 b1 = *(u8 *)pMem->z; in sqlite3VdbeMemHandleBom()
384 u8 b2 = *(((u8 *)pMem->z) + 1); in sqlite3VdbeMemHandleBom()
394 rc = sqlite3VdbeMemMakeWriteable(pMem); in sqlite3VdbeMemHandleBom()
396 pMem->n -= 2; in sqlite3VdbeMemHandleBom()
397 memmove(pMem->z, &pMem->z[2], pMem->n); in sqlite3VdbeMemHandleBom()
398 pMem->z[pMem->n] = '\0'; in sqlite3VdbeMemHandleBom()
399 pMem->z[pMem->n+1] = '\0'; in sqlite3VdbeMemHandleBom()
400 pMem->flags |= MEM_Term; in sqlite3VdbeMemHandleBom()
401 pMem->enc = bom; in sqlite3VdbeMemHandleBom()