Foros       Consigue tu camiseta aquí
memcpy y memset

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.Android-Spa.com -> NDK
Mostrar mensajes anteriores:   

stroof

Mensajes: 141
MensajePublicado: Vie Jun 04, 2010 9:17 am    Título del mensaje: memcpy y memset Enviar mensaje privado Responder citando

Buenas, hay problemas en el NDK con estas 2 funciones, se ve que es un bug de linkado a las librerías donde se encuentran estas funciones... el memset lo he conseguido arreglar de la siguiente manera:

Código :

void *memeset(void *_p, unsigned v, unsigned count)
{
    unsigned char *p = _p;
    while(count-- > 0) *p++ = 0;
    return _p;
}
 


A alguien le ha pasado y ha conseguido arreglar la otra?

Merci!

stroof

Mensajes: 141
MensajePublicado: Vie Jun 04, 2010 10:52 am    Título del mensaje: Enviar mensaje privado Responder citando

SOLVED!

Código :

void memcpy(void * ptr0, void * ptr1, unsigned count)
{
    unsigned char *p0 = (unsigned char *)ptr0;
    unsigned char *p1 = (unsigned char *)ptr1;
    while (count-- > 0) *p0++ = *p1++;
}
 


Por si a alguien le interesa.....

Un saludo

pmaicas

Mensajes: 219
MensajePublicado: Vie Jun 04, 2010 11:56 am    Título del mensaje: Enviar mensaje privado Responder citando

En la primera (memset), tienes puesto *p++ = 0; , debería ser *p++ = v; o solo servirá para poner a cero, aparte falta el cast del puntero ((unsigned char*))

Estas dos funciones se suelen compilar directas a assembler (quiero decir que el compilador lo hace así), y optimizadas al tamaño de la palabra del microprocesador, ya que suele haber (al menos en X86) una instruccion de código máquina equivalente, sin necesidad de hacer un bucle.

Es raro que exista un bug en lago tan básico, quizás es que estás usando mal la función, solapando el buffer de entrada y el de salida, cosa que no se debe hacer o el resultado será impredecible. Si necesitas solapar los buffers entonces se recurre a hacerlo con un bucle tal como muestras en tu mensaje, pero es mas lento que el código generado por el compilador.

stroof

Mensajes: 141
MensajePublicado: Lun Jun 07, 2010 1:12 pm    Título del mensaje: Enviar mensaje privado Responder citando

Cambios aplicados, muchas gracias!!

Y decir que sí, que la última revisión del NDK tiene ese par de bugs... lo vi en una fuente bastante fiable.

Aunque si alguien quiere confirmarlo...

Un saludo!

Publicar Nuevo Tema   Responder al Tema    Índice del Foro www.Android-Spa.com -> NDK Todas las horas están en GMT + 2 Horas
Página 1 de 1
Ver tema anterior :: Ver siguiente tema  

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas