objwriter.cxx

changeset 48
976c57f153b3
parent 45
e1d3b7ea975c
child 49
8e2f7a031410
--- a/objwriter.cxx	Sun Aug 12 04:45:27 2012 +0300
+++ b/objwriter.cxx	Mon Aug 13 19:04:29 2012 +0300
@@ -55,6 +55,7 @@
 	MainBuffer = new DataBuffer;
 	MainLoopBuffer = new DataBuffer;
 	OnEnterBuffer = new DataBuffer;
+	RecordBuffer = NULL; // created on demand
 	numWrittenBytes = 0;
 	numWrittenReferences = 0;
 	filepath = path;
@@ -109,8 +110,6 @@
 		for (unsigned int a = 0; a < stringcount; a++)
 			WriteString (g_StringTable[a]);
 	}
-	
-	printf ("%u / %u string%s written\n", stringcount, MAX_LIST_STRINGS, PLURAL (stringcount));
 }
 
 // Write main buffer to file
@@ -118,9 +117,6 @@
 	fp = fopen (filepath, "w");
 	CHECK_FILE (fp, filepath, "writing");
 	
-	if (sizeof (unsigned char) != 1)
-		error ("size of unsigned char isn't 1, but %d!\n", sizeof (unsigned char));
-	
 	// First, resolve references
 	numWrittenReferences = 0;
 	for (unsigned int u = 0; u < MAX_MARKS; u++) {
@@ -134,6 +130,10 @@
 			memset (MainBuffer->buffer + ref->pos + v, uni.b[v], 1);
 		}
 		
+		/*
+		printf ("reference %u at %d resolved to %u at %d\n",
+			u, ref->pos, ref->num, MainBuffer->marks[ref->num]->pos);
+		*/
 		numWrittenReferences++;
 	}
 	
@@ -146,7 +146,8 @@
 }
 
 DataBuffer* ObjWriter::GetCurrentBuffer() {
-	return	(g_CurMode == MODE_MAINLOOP) ? MainLoopBuffer :
+	return	RecordBuffer ? RecordBuffer :
+		(g_CurMode == MODE_MAINLOOP) ? MainLoopBuffer :
 		(g_CurMode == MODE_ONENTER) ? OnEnterBuffer :
 		MainBuffer;
 }

mercurial