* uuid now uses a bytevector for ffi.

This commit is contained in:
Abdulaziz Ghuloum 2007-05-18 22:31:00 -04:00
parent 027d50e84a
commit 1c4d3c4b40
4 changed files with 7 additions and 19 deletions

Binary file not shown.

View File

@ -467,8 +467,8 @@ ikp ik_uuid(ikp str){
} }
uuid_strlen = strlen(uuid_chars); uuid_strlen = strlen(uuid_chars);
} }
int n = unfix(ref(str, off_string_length)); int n = unfix(ref(str, off_bytevector_length));
unsigned char* data = str+off_string_data; unsigned char* data = str+off_bytevector_data;
read(fd, data, n); read(fd, data, n);
unsigned char* p = data; unsigned char* p = data;
unsigned char* q = data + n; unsigned char* q = data + n;
@ -480,20 +480,6 @@ ikp ik_uuid(ikp str){
} }
#if 0
ikp ik_read(ikp fdptr, ikp bufptr, ikp lenptr){
int fd = unfix(fdptr);
int len = unfix(lenptr);
char* buf = (char*)(bufptr+disp_string_data-string_tag);
int bytes = read(fd, buf, len);
if(bytes == -1){
perror("S_read");
exit(-10);
}
return fix(bytes);
}
#endif
ikp ik_write(ikp fdptr, ikp idx, ikp str){ ikp ik_write(ikp fdptr, ikp idx, ikp str){
fprintf(stderr, "IK_WRITE\n"); fprintf(stderr, "IK_WRITE\n");
int fd = unfix(fdptr); int fd = unfix(fdptr);

Binary file not shown.

View File

@ -6,6 +6,7 @@
(ikarus system $strings) (ikarus system $strings)
(ikarus system $fx) (ikarus system $fx)
(ikarus system $chars) (ikarus system $chars)
(ikarus system $bytevectors)
(ikarus system $pairs) (ikarus system $pairs)
(except (ikarus) string-length string-ref string-set! make-string (except (ikarus) string-length string-ref string-set! make-string
string->list string=? string-append substring string string->list string=? string-append substring string
@ -230,7 +231,8 @@
(define uuid (define uuid
(lambda () (lambda ()
(let ([s (make-string 16)]) (let ([s ($make-bytevector 16)])
(or (foreign-call "ik_uuid" s) (utf8-bytevector->string
(error 'uuid "failed!"))))) (or (foreign-call "ik_uuid" s)
(error 'uuid "failed!"))))))
) )