Просмотр исходного кода

Changed the tag from a number to a static string to make it possible to enumerate using then new function "gettypetag".

mingodad 13 лет назад
Родитель
Сommit
bbfc08bc82
3 измененных файлов с 16 добавлено и 9 удалено
  1. 5 2
      sqstdlib/sqstdblob.cpp
  2. 4 2
      sqstdlib/sqstdio.cpp
  3. 7 5
      sqstdlib/sqstdstream.cpp

+ 5 - 2
sqstdlib/sqstdblob.cpp

@@ -7,9 +7,12 @@
 #include "sqstdstream.h"
 #include "sqstdblobimpl.h"
 
-#define SQSTD_BLOB_TYPE_TAG (SQSTD_STREAM_TYPE_TAG | 0x00000002)
+//#define SQSTD_BLOB_TYPE_TAG (SQSTD_STREAM_TYPE_TAG | 0x00000002)
+static const SQChar  SQSTD_BLOB_TYPE_TAG[] = _SC("std_stream_blob");
+
+
+//Blob
 
-//Blob
 
 SQUserPointer SQBlob::SQBlob_TAG = (SQUserPointer)SQSTD_BLOB_TYPE_TAG;
 

+ 4 - 2
sqstdlib/sqstdio.cpp

@@ -5,7 +5,9 @@
 #include <sqstdio.h>
 #include "sqstdstream.h"
 
-#define SQSTD_FILE_TYPE_TAG (SQSTD_STREAM_TYPE_TAG | 0x00000001)
+//#define SQSTD_FILE_TYPE_TAG (SQSTD_STREAM_TYPE_TAG | 0x00000001)
+static const SQChar  SQSTD_FILE_TYPE_TAG[] = _SC("std_stream_file");
+
 //basic API
 SQFILE sqstd_fopen(const SQChar *filename ,const SQChar *mode)
 {
@@ -148,7 +150,7 @@ static SQInteger _file_constructor(HSQUIRRELVM v)
 	}
 	sq_setreleasehook(v,1,_file_releasehook);
 	return 0;
-}
+}
 
 static SQInteger _file_close(HSQUIRRELVM v)
 {

+ 7 - 5
sqstdlib/sqstdstream.cpp

@@ -7,7 +7,9 @@
 #include <sqstdio.h>
 #include <sqstdblob.h>
 #include "sqstdstream.h"
-#include "sqstdblobimpl.h"
+#include "sqstdblobimpl.h"
+
+static const SQChar SQSTD_STREAM_TYPE_TAG[] = _SC("std_stream");
 
 #define SETUP_STREAM(v) \
 	SQStream *self = NULL; \
@@ -342,14 +344,14 @@ static SQRegFunction _stream_methods[] = {
 	_DECL_STREAM_FUNC(flush,1,_SC("x")),
 	_DECL_STREAM_FUNC(_cloned,0,NULL),
 	{0,0}
-};
-
+};
+
 void init_streamclass(HSQUIRRELVM v)
 {
 	sq_pushregistrytable(v);
-	sq_pushstring(v,_SC("std_stream"),-1);
+	sq_pushstring(v,SQSTD_STREAM_TYPE_TAG,-1);
 	if(SQ_FAILED(sq_get(v,-2))) {
-		sq_pushstring(v,_SC("std_stream"),-1);
+		sq_pushstring(v,SQSTD_STREAM_TYPE_TAG,-1);
 		sq_newclass(v,SQFalse);
 		sq_settypetag(v,-1,(SQUserPointer)SQSTD_STREAM_TYPE_TAG);
 		SQInteger i = 0;