[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/unexnext.c
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/unexnext.c |
Date: |
Fri, 04 Apr 2003 01:24:08 -0500 |
Index: emacs/src/unexnext.c
diff -c emacs/src/unexnext.c:1.7 emacs/src/unexnext.c:1.8
*** emacs/src/unexnext.c:1.7 Tue Sep 2 01:05:37 1997
--- emacs/src/unexnext.c Tue Feb 4 09:03:13 2003
***************
*** 44,50 ****
* pages it vm_allocated and write only those out into the data segment.
*
* This kludge may break when we stop using fixed virtual address
! * shared libraries. Actually, emacs will probably continue working, but be
* much larger on disk than it needs to be (because non-malloced data will
* be in the file).
*/
--- 44,50 ----
* pages it vm_allocated and write only those out into the data segment.
*
* This kludge may break when we stop using fixed virtual address
! * shared libraries. Actually, emacs will probably continue working, but be
* much larger on disk than it needs to be (because non-malloced data will
* be in the file).
*/
***************
*** 73,79 ****
*the_commands = malloc(sizeof(*the_commands));
} else {
(*the_commands_len)++;
! *the_commands = realloc(*the_commands,
(*the_commands_len *
sizeof(**the_commands)));
}
--- 73,79 ----
*the_commands = malloc(sizeof(*the_commands));
} else {
(*the_commands_len)++;
! *the_commands = realloc(*the_commands,
(*the_commands_len *
sizeof(**the_commands)));
}
***************
*** 125,131 ****
return (0);
}
for (i = 0; i < the_header->ncmds; i++) {
! if (read(fd, &command, sizeof(struct load_command)) !=
sizeof(struct load_command)) {
fatal_unexec("cannot read macho load command header");
return (0);
--- 125,131 ----
return (0);
}
for (i = 0; i < the_header->ncmds; i++) {
! if (read(fd, &command, sizeof(struct load_command)) !=
sizeof(struct load_command)) {
fatal_unexec("cannot read macho load command header");
return (0);
***************
*** 138,145 ****
buf = malloc(command.cmdsize);
buf->cmd = command.cmd;
buf->cmdsize = command.cmdsize;
! if (read(fd, ((char *)buf +
! sizeof(struct load_command)),
size) != size) {
fatal_unexec("cannot read load command data");
return (0);
--- 138,145 ----
buf = malloc(command.cmdsize);
buf->cmd = command.cmd;
buf->cmdsize = command.cmdsize;
! if (read(fd, ((char *)buf +
! sizeof(struct load_command)),
size) != size) {
fatal_unexec("cannot read load command data");
return (0);
***************
*** 184,214 ****
region.address = 0;
*address = 0;
for (;;) {
! ret = vm_region(task_self(),
! ®ion.address,
! ®ion.size,
! ®ion.protection,
! ®ion.max_protection,
®ion.inheritance,
! ®ion.shared,
! ®ion.object_name,
®ion.offset);
if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
break;
}
if (*address != 0) {
if (region.address > *address + *size) {
! if (!filldatagap(*address, size,
region.address)) {
return (0);
}
! }
*size += region.size;
} else {
if (region.address == sect->addr) {
*address = region.address;
*size = region.size;
! }
}
region.address += region.size;
}
--- 184,214 ----
region.address = 0;
*address = 0;
for (;;) {
! ret = vm_region(task_self(),
! ®ion.address,
! ®ion.size,
! ®ion.protection,
! ®ion.max_protection,
®ion.inheritance,
! ®ion.shared,
! ®ion.object_name,
®ion.offset);
if (ret != KERN_SUCCESS || region.address >= VM_HIGHDATA) {
break;
}
if (*address != 0) {
if (region.address > *address + *size) {
! if (!filldatagap(*address, size,
region.address)) {
return (0);
}
! }
*size += region.size;
} else {
if (region.address == sect->addr) {
*address = region.address;
*size = region.size;
! }
}
region.address += region.size;
}
***************
*** 293,299 ****
if (strcmp(segment->segname, SEG_DATA) == 0) {
fdatastart = segment->fileoff;
fdatasize = segment->filesize;
! fgrowth = (data_size -
segment->filesize);
segment->vmsize = data_size;
segment->filesize = data_size;
--- 293,299 ----
if (strcmp(segment->segname, SEG_DATA) == 0) {
fdatastart = segment->fileoff;
fdatasize = segment->filesize;
! fgrowth = (data_size -
segment->filesize);
segment->vmsize = data_size;
segment->filesize = data_size;
***************
*** 332,368 ****
break;
}
}
!
/*
* Write header
*/
! if (write(outfd, &the_header,
sizeof(the_header)) != sizeof(the_header)) {
fatal_unexec("cannot write output file");
return (0);
}
!
/*
* Write commands
*/
for (i = 0; i < the_commands_len; i++) {
! if (write(outfd, the_commands[i],
! the_commands[i]->cmdsize) !=
the_commands[i]->cmdsize) {
fatal_unexec("cannot write output file");
return (0);
}
}
!
/*
* Write original text
*/
! if (lseek(infd, the_header.sizeofcmds + sizeof(the_header),
L_SET) < 0) {
fatal_unexec("cannot seek input file");
return (0);
}
! size = fdatastart - (sizeof(the_header) +
the_header.sizeofcmds);
buf = my_malloc(size);
if (read(infd, buf, size) != size) {
--- 332,368 ----
break;
}
}
!
/*
* Write header
*/
! if (write(outfd, &the_header,
sizeof(the_header)) != sizeof(the_header)) {
fatal_unexec("cannot write output file");
return (0);
}
!
/*
* Write commands
*/
for (i = 0; i < the_commands_len; i++) {
! if (write(outfd, the_commands[i],
! the_commands[i]->cmdsize) !=
the_commands[i]->cmdsize) {
fatal_unexec("cannot write output file");
return (0);
}
}
!
/*
* Write original text
*/
! if (lseek(infd, the_header.sizeofcmds + sizeof(the_header),
L_SET) < 0) {
fatal_unexec("cannot seek input file");
return (0);
}
! size = fdatastart - (sizeof(the_header) +
the_header.sizeofcmds);
buf = my_malloc(size);
if (read(infd, buf, size) != size) {
***************
*** 375,391 ****
return (0);
}
my_free(buf, size);
!
!
/*
* Write new data
*/
! if (write(outfd, (char *)data_address,
data_size) != data_size) {
fatal_unexec("cannot write output file");
return (0);
}
!
}
/*
--- 375,391 ----
return (0);
}
my_free(buf, size);
!
!
/*
* Write new data
*/
! if (write(outfd, (char *)data_address,
data_size) != data_size) {
fatal_unexec("cannot write output file");
return (0);
}
!
}
/*
***************
*** 424,430 ****
fatal_unexec("cannot seek input file");
return (0);
}
!
for (i = 0; i < nextrel; i++)
{
long zeroval = 0;
--- 424,430 ----
fatal_unexec("cannot seek input file");
return (0);
}
!
for (i = 0; i < nextrel; i++)
{
long zeroval = 0;
***************
*** 482,488 ****
fatal_unexec("cannot open input file `%s'", infile);
exit(1);
}
!
tmpnam(tmpbuf);
tmpfile = rindex(tmpbuf, '/');
if (tmpfile == NULL) {
--- 482,488 ----
fatal_unexec("cannot open input file `%s'", infile);
exit(1);
}
!
tmpnam(tmpbuf);
tmpfile = rindex(tmpbuf, '/');
if (tmpfile == NULL) {
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/src/unexnext.c,
Miles Bader <=