예제 #1
0
void *uirealloc( void *ptr, size_t size )
{
    void        *tmp;

#ifdef TRMEM
#ifndef __WATCOMC__
    tmp = doMemReAllocUnsafe( ptr, size, (WHO_PTR)6 );
#else
    tmp = doMemReAllocUnsafe( ptr, size, _trmem_guess_who() );
#endif
#else
    tmp = doMemReAllocUnsafe( ptr, size, (WHO_PTR)0 );
#endif
    if( tmp == NULL ) {
        AbandonHopeAllYeWhoEnterHere( ERR_NO_MEMORY );
    }
    return( tmp );
}
예제 #2
0
/*
 * MakeWriteBlock - create a writeable block from the fcb data
 */
int MakeWriteBlock( fcb *fb )
{
    line        *cline, *tline;
    char        *buff;
    int         len = 0;

    /*
     * build a block
     */
    buff = WriteBuffer;
    for( cline = fb->lines.head; cline != NULL; cline = cline->next ) {
        memcpy( buff, cline->data, cline->len );
        buff += cline->len;
        *buff++ = 13;
        *buff++ = 10;
        len += cline->len;
    }

    /*
     * swap line data
     */
    for( cline = fb->lines.head; cline != NULL; cline = tline ) {
        *(U_INT *)buff = cline->inf.word;
        buff += 2;
        tline = cline->next;
        MemFree( cline );
        len += 4; /* 2 for these and 2 for c/r l/f */
    }

    if( len != FcbSize( fb ) ) {
        AbandonHopeAllYeWhoEnterHere( 666 );
    }

    return( len );

} /* MakeWriteBlock */