Posted to tcl by zoro2 at Mon Feb 08 12:42:43 GMT 2010view raw
- #if 0
- Tcl_Interp *tinterp = GetThreadInterp();
-
- data = Tcl_NewObj();
- Tcl_IncrRefCount(data);
- count = Tcl_ReadChars(p->fileChannel, data, size, 0);
-
- if (count != size) {
- Tcl_DecrRefCount(data);
- return NULL;
- }
-
- Tcl_SetObjResult(tinterp, Tcl_NewObj());
- CookfsLog(printf("CookfsDecompressPage before inflate"))
- if (Tcl_ZlibInflate(tinterp, TCL_ZLIB_FORMAT_RAW, data, 0, NULL) == TCL_ERROR) {
- CookfsLog(printf("CookfsDecompressPage inflate FAILED"))
- return NULL;
- }
- CookfsLog(printf("CookfsDecompressPage after inflate"))
-
- Tcl_DecrRefCount(data);
- cobj = Tcl_GetObjResult(tinterp);
- #else
- Tcl_ZlibStream zshandle;
- int bsize;
-
- if (Tcl_ZlibStreamInit(NULL, TCL_ZLIB_STREAM_INFLATE, TCL_ZLIB_FORMAT_RAW, 9, NULL, &zshandle) != TCL_OK) {
- Tcl_Panic("Tcl_ZlibStreamInit failed!");
- }
- data = Tcl_NewObj();
- Tcl_IncrRefCount(data);
- count = Tcl_ReadChars(p->fileChannel, data, size, 0);
-
- if (count != size) {
- Tcl_DecrRefCount(data);
- return NULL;
- }
-
- printf("Read %d chars\n", count);
- if (Tcl_ZlibStreamPut(zshandle, data, TCL_ZLIB_FINALIZE) != TCL_OK) {
- Tcl_DecrRefCount(data);
- Tcl_Panic("Tcl_ZlibStreamPut failed");
- }
- Tcl_DecrRefCount(data);
- cobj = Tcl_NewObj();
- if (Tcl_ZlibStreamGet(zshandle, cobj, TCL_ZLIB_FINALIZE) != TCL_OK) {
- Tcl_Panic("Tcl_ZlibStreamPut failed");
- }
- Tcl_GetByteArrayFromObj(cobj, &bsize);
- printf("LEN: %d\n", bsize);
- Tcl_ZlibStreamClose(zshandle);
- #endif
-