[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Dotgnu-pnet-commits] CVS: pnet/image pecoff_writer.c, 1.13, 1.14 writer
From: |
Richard Baumann <address@hidden> |
Subject: |
[Dotgnu-pnet-commits] CVS: pnet/image pecoff_writer.c, 1.13, 1.14 writer.c, 1.13, 1.14 |
Date: |
Sun, 20 Jul 2003 15:05:02 -0400 |
Update of /cvsroot/dotgnu-pnet/pnet/image
In directory subversions:/tmp/cvs-serv2417/image
Modified Files:
pecoff_writer.c writer.c
Log Message:
Implement more lib_emit icalls and fix a few things for image writers.
Index: pecoff_writer.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/pecoff_writer.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** pecoff_writer.c 3 Jul 2003 12:42:48 -0000 1.13
--- pecoff_writer.c 20 Jul 2003 19:04:59 -0000 1.14
***************
*** 1072,1075 ****
--- 1072,1129 ----
}
+ int ILWriterResetTypeAndFlags(ILWriter *writer, int type, int flags)
+ {
+ if (type != IL_IMAGETYPE_DLL &&
+ type != IL_IMAGETYPE_EXE)
+ {
+ return 0;
+ }
+ if (writer->type != IL_IMAGETYPE_DLL &&
+ writer->type != IL_IMAGETYPE_EXE)
+ {
+ return 0;
+ }
+ if ((flags & IL_WRITEFLAG_JVM_MODE) != 0 ||
+ (writer->flags & IL_WRITEFLAG_JVM_MODE) != 0)
+ {
+ return 0;
+ }
+ if (writer->type != type)
+ {
+ writer->type = type;
+ if(type == IL_IMAGETYPE_DLL)
+ {
+ WriteBackPatch16(writer, (writer->peOffset)+18, 0x210E);
+ WriteBackPatch32(writer, (writer->optOffset)+28,
0x10000000);
+ }
+ else
+ {
+ WriteBackPatch16(writer, (writer->peOffset)+18, 0x010E);
+ WriteBackPatch32(writer, (writer->optOffset)+28,
0x00400000);
+ }
+ }
+ if (writer->flags != flags)
+ {
+ writer->flags = flags;
+ if((flags & IL_WRITEFLAG_SUBSYS_GUI) != 0)
+ {
+ WriteBackPatch16(writer, (writer->optOffset)+68, 2);
+ }
+ else
+ {
+ WriteBackPatch16(writer, (writer->optOffset)+68, 3);
+ }
+ if((flags & IL_WRITEFLAG_32BIT_ONLY) != 0)
+ {
+ WriteBackPatch32(writer, (writer->runtimeOffset)+16, 3);
+ }
+ else
+ {
+ WriteBackPatch32(writer, (writer->runtimeOffset)+16, 1);
+ }
+ }
+ return 1;
+ }
+
#ifdef __cplusplus
};
Index: writer.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/image/writer.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -r1.13 -r1.14
*** writer.c 20 Jul 2003 04:59:10 -0000 1.13
--- writer.c 20 Jul 2003 19:04:59 -0000 1.14
***************
*** 115,119 ****
writer->sections = 0;
writer->stream = stream;
! writer->seekable = seekable;
writer->outOfMemory = 0;
writer->writeFailed = 0;
--- 115,119 ----
writer->sections = 0;
writer->stream = stream;
! writer->seekable = (stream ? seekable : 0);
writer->outOfMemory = 0;
writer->writeFailed = 0;
***************
*** 163,177 ****
void ILWriterSetStream(ILWriter *writer, FILE *stream, int seekable)
{
! if (!(writer->stream))
{
writer->stream = stream;
writer->seekable = seekable;
}
- }
-
- void ILWriterResetTypeAndFlags(ILWriter *writer, int type, int flags)
- {
- writer->type = type;
- writer->flags = flags;
}
--- 163,171 ----
void ILWriterSetStream(ILWriter *writer, FILE *stream, int seekable)
{
! if (!(writer->stream) && stream)
{
writer->stream = stream;
writer->seekable = seekable;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Dotgnu-pnet-commits] CVS: pnet/image pecoff_writer.c, 1.13, 1.14 writer.c, 1.13, 1.14,
Richard Baumann <address@hidden> <=