dotgnu-pnet-commits
[Top][All Lists]
Advanced

[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;
        }
  }
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]