Revision: 201004 PDK_3.0.f
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 26 Jan 2010 13:16:24 +0200
changeset 1 c084286672be
parent 0 08ec8eefde2f
child 2 6862383cf555
child 14 15018f1726c7
Revision: 201004 Kit: 201004
persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.cpp
persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.h
persistentstorage/centralrepository/cenrepsrv/shrepos.cpp
persistentstorage/centralrepository/cenrepsrv/shrepos.h
persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp
persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.h
persistentstorage/centralrepository/group/bld.inf
persistentstorage/centralrepository/group/centreptestdata.iby
persistentstorage/centralrepository/test/cccccc04.cre
persistentstorage/centralrepository/test/t_cenrep_defects.cpp
persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/Background.doc
persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/bugs.doc
persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/libmoto.doc
persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/morefiles.doc
traceservices/commsdebugutility/SSVR/comsdbgwriter.cpp
traceservices/tracefw/integ_test/documentation/backup/OSTv2_TestSuite_How_To_v0.1.doc
--- a/persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.cpp	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.cpp	Tue Jan 26 13:16:24 2010 +0200
@@ -852,6 +852,46 @@
 	return (pos!=KErrNotFound) ? iRepositoryInfo[pos] : NULL;
 	}
 
+void CObservable::CancelTransaction(CRepositoryTransactor& aTransactor,TUid aRepositoryUid)
+    {
+    if (aTransactor.IsInTransaction())
+        {
+        ReleaseTransactionLock(aTransactor,aRepositoryUid);
+        CObservable::TSharedRepositoryInfo* shrepinfo =SharedRepositoryInfo(aRepositoryUid);
+        ASSERT(shrepinfo);
+        shrepinfo->iTransactors.Remove(aTransactor);
+        //Remove the link to the next transaction
+        aTransactor.iLink.iNext = NULL;
+        aTransactor.Deque();
+        }
+    }
+
+/** Private helper method which releases any read/write locks held in the shared repository
+by this transactor. Caller must set transactor's state or remove from queue as appropriate.
+@param aTransactor transactor whose read/write locks are to be released.
+@post Any read/write locks held by transactor are released.
+*/
+void CObservable::ReleaseTransactionLock(CRepositoryTransactor& aTransactor,TUid aRepositoryUid)
+    {
+    CObservable::TSharedRepositoryInfo* shrepinfo = SharedRepositoryInfo(aRepositoryUid);
+    ASSERT(shrepinfo);
+    if (aTransactor.IsInActiveConcurrentReadWriteTransaction())
+        {
+        shrepinfo->iNumActiveConcurrentReadWriteTransactions--;
+        ASSERT(shrepinfo->iNumActiveConcurrentReadWriteTransactions >= 0); // sanity check
+        }
+    else if (aTransactor.IsInActiveReadTransaction())
+        {
+        shrepinfo->iPessimisticTransactionLockCount--;
+        ASSERT(shrepinfo->iPessimisticTransactionLockCount >= 0); // sanity check
+        }
+    else if (aTransactor.IsInActiveExclusiveReadWriteTransaction())
+        {
+        // can only be one exclusive read/write transaction active (lock value -1)
+        ASSERT(shrepinfo->iPessimisticTransactionLockCount == -1);
+        shrepinfo->iPessimisticTransactionLockCount = 0;
+        }
+    }
 CObservable::TSharedRepositoryInfo::TSharedRepositoryInfo(TUid aUid) : 
 	iRepositoryUid(aUid), iTransactors(_FOFF(CRepositoryTransactor, iLink)), 
 	iPessimisticTransactionLockCount(0), iNumActiveConcurrentReadWriteTransactions(0) 
--- a/persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.h	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/obsrvr_noc.h	Tue Jan 26 13:16:24 2010 +0200
@@ -90,6 +90,8 @@
 
 	void Notify(TUid aUid, TUint32 aVal) const;
 	
+	void ReleaseTransactionLock(CRepositoryTransactor& aTransactor,TUid aRepositoryUid);
+	void CancelTransaction(CRepositoryTransactor& aTransactor,TUid aRepositoryUid);	
 	TInt FindOpenRepository(TUid aUid) const;
 	void RemoveOpenRepository(CSharedRepository* aRepository);
 	
--- a/persistentstorage/centralrepository/cenrepsrv/shrepos.cpp	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/shrepos.cpp	Tue Jan 26 13:16:24 2010 +0200
@@ -813,7 +813,7 @@
 		aKeyInfo = 0;
 		// must release locks otherwise shared repository will not commit changes
 		// failed transactions have already released their locks
-		ReleaseTransactionLock(aTransactor);
+		TServerResources::iObserver->ReleaseTransactionLock(aTransactor,iSimRep->Uid());
 		}
 	
 	// transactions that haven't made any changes can be closed at any time
@@ -834,30 +834,13 @@
 	return result;
 	}
 
-/**	Cancels the transaction, discarding changes.
-@post Not in a transaction
-*/
-void CSharedRepository::CancelTransaction(CRepositoryTransactor& aTransactor)
-	{
-	if (aTransactor.IsInTransaction())
-		{
-		ReleaseTransactionLock(aTransactor);
-	  	CObservable::TSharedRepositoryInfo* shrepinfo = TServerResources::iObserver->SharedRepositoryInfo(iSimRep->Uid());
-	  	ASSERT(shrepinfo);
-		shrepinfo->iTransactors.Remove(aTransactor);
-		//Remove the link to the next transaction
-		aTransactor.iLink.iNext = NULL;
-		aTransactor.Deque();
-		}
-	}
-
 TInt CSharedRepository::FailTransaction(CRepositoryTransactor& aTransactor, TInt aError, TUint32 aErrorKey)
 	{
 	ASSERT(aError != KErrNone); // must fail for a reason
 	if (aTransactor.IsInActiveTransaction())
 		{
 		// locks cannot be removed from a failed transaction, so release before failing
-		ReleaseTransactionLock(aTransactor);
+		TServerResources::iObserver->ReleaseTransactionLock(aTransactor,iSimRep->Uid());
 		aTransactor.SetFailed(aError, aErrorKey);
 		}
 	return aError; // to allow "return FailTransaction(error, errorKey);" - error written once
@@ -911,32 +894,7 @@
 	return KErrLocked;
 	}
 
-/** Private helper method which releases any read/write locks held in the shared repository
-by this transactor. Caller must set transactor's state or remove from queue as appropriate.
-@param aTransactor transactor whose read/write locks are to be released.
-@post Any read/write locks held by transactor are released.
-*/
-void CSharedRepository::ReleaseTransactionLock(CRepositoryTransactor& aTransactor)
-	{
-  	CObservable::TSharedRepositoryInfo* shrepinfo = TServerResources::iObserver->SharedRepositoryInfo(iSimRep->Uid());
-  	ASSERT(shrepinfo);
-	if (aTransactor.IsInActiveConcurrentReadWriteTransaction())
-		{
-		shrepinfo->iNumActiveConcurrentReadWriteTransactions--;
-		ASSERT(shrepinfo->iNumActiveConcurrentReadWriteTransactions >= 0); // sanity check
-		}
-	else if (aTransactor.IsInActiveReadTransaction())
-		{
-		shrepinfo->iPessimisticTransactionLockCount--;
-		ASSERT(shrepinfo->iPessimisticTransactionLockCount >= 0); // sanity check
-		}
-	else if (aTransactor.IsInActiveExclusiveReadWriteTransaction())
-		{
-		// can only be one exclusive read/write transaction active (lock value -1)
-		ASSERT(shrepinfo->iPessimisticTransactionLockCount == -1);
-		shrepinfo->iPessimisticTransactionLockCount = 0;
-		}
-	}
+
 	
 void CSharedRepository::ExternalizeCre(RWriteStream& aStream) const
 	{
--- a/persistentstorage/centralrepository/cenrepsrv/shrepos.h	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/shrepos.h	Tue Jan 26 13:16:24 2010 +0200
@@ -80,7 +80,6 @@
 															
 	TInt StartTransaction(CRepositoryTransactor& aTransactor, TInt aMode);
 	TInt CommitTransaction(CRepositoryTransactor& aTransactor, TUint32& aKeyInfo);
-	void CancelTransaction(CRepositoryTransactor& aTransactor);
 	TInt FailTransaction(CRepositoryTransactor& aTransactor, TInt aError, TUint32 aErrorKey);
 	void FailAllTransactions(const CRepositoryTransactor* aExcludeTransactor);
 	TInt AttemptPromoteTransactionToReadWrite(CRepositoryTransactor& aTransactor);
@@ -122,7 +121,6 @@
 	void 	DoRestoreConsistencyL();
 	TInt	CreateRepositoryFromCreFileL(TCentRepLocation aLocation);
 	TInt	ReadSettingSavePolicyL(CIniFileIn& aFile,TServerSetting& aSetting, TSettingsAccessPolicy* &aPolicy, TBool& aSingleMetaFound);
-	void ReleaseTransactionLock(CRepositoryTransactor& aTransactor);
 	TInt DoCommitTransactionSettings(CRepositoryTransactor& aTransactor, TUint32& aKeyInfo);
 	void Notify(TUint32 aVal) const;
 	
--- a/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.cpp	Tue Jan 26 13:16:24 2010 +0200
@@ -49,10 +49,12 @@
 	if (index>=0)
 		{
 		iRepository = TServerResources::iObserver->GetOpenRepository(index);
-		// cancel to ensure any read/write locks are released and transaction settings cleaned up
-		CancelTransaction();
 		}
-		
+	// cancel to ensure any read/write locks are released and transaction settings cleaned up
+
+    CancelTransaction();
+
+	
 	TServerResources::iObserver->RemoveObserver(iUid, this, index);
 	
 	iNotifier = NULL;			
--- a/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.h	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/cenrepsrv/srvrepos_noc.h	Tue Jan 26 13:16:24 2010 +0200
@@ -54,7 +54,7 @@
 		}
 	inline void CancelTransaction() // serves as both rollback and async cancel
 		{
-		iRepository->CancelTransaction(*this);
+		TServerResources::iObserver->CancelTransaction(*this,iUid);
 		}
 	void CleanupCancelTransactionPushL();
 	inline TInt FailTransaction(TInt aError, TUint32 aErrorKey)
--- a/persistentstorage/centralrepository/group/bld.inf	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/group/bld.inf	Tue Jan 26 13:16:24 2010 +0200
@@ -83,6 +83,7 @@
 ../test/cccccc01.txt            z:/private/10202be9/cccccc01.txt
 ../test/cccccc02.cre            z:/private/10202be9/cccccc02.cre
 ../test/cccccc03.txt            z:/private/10202be9/cccccc03.txt
+../test/cccccc04.cre            z:/private/10202be9/cccccc04.cre
 ../test/10055661.txt            z:/private/10202be9/10055661.txt
 ../test/BACBACBA.txt            z:/private/10202be9/bacbacba.txt
 ../test/BAC2BAC2.txt            z:/private/10202be9/bac2bac2.txt
--- a/persistentstorage/centralrepository/group/centreptestdata.iby	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/group/centreptestdata.iby	Tue Jan 26 13:16:24 2010 +0200
@@ -53,6 +53,7 @@
 data=DATAZ_\PRIVATE\10202BE9\CCCCCC01.txt PRIVATE\10202BE9\CCCCCC01.txt
 data=DATAZ_\PRIVATE\10202BE9\CCCCCC02.cre PRIVATE\10202BE9\CCCCCC02.cre
 data=DATAZ_\PRIVATE\10202BE9\CCCCCC03.txt PRIVATE\10202BE9\CCCCCC03.txt
+data=DATAZ_\PRIVATE\10202BE9\CCCCCC04.cre PRIVATE\10202BE9\CCCCCC04.cre
 data=DATAZ_\PRIVATE\10202BE9\10055661.txt PRIVATE\10202BE9\10055661.txt
 data=DATAZ_\PRIVATE\10202BE9\F0000001.txt PRIVATE\10202BE9\F0000001.txt
 #ifndef __TE_CENTREP_BUR_SUITE_IBY__
Binary file persistentstorage/centralrepository/test/cccccc04.cre has changed
--- a/persistentstorage/centralrepository/test/t_cenrep_defects.cpp	Fri Jan 22 11:06:30 2010 +0200
+++ b/persistentstorage/centralrepository/test/t_cenrep_defects.cpp	Tue Jan 26 13:16:24 2010 +0200
@@ -2737,10 +2737,73 @@
     __UHEAP_MARKEND;
     } 
 
+LOCAL_C void ConnectStartSuicideTransL(void)
+    {
+    const TUid KLargeReposUid1 ={0xcccccc00};   
+    CRepository* repository=CRepository::NewL(KLargeReposUid1);
+    repository->StartTransaction(CRepository::EConcurrentReadWriteTransaction);
+    }
+
+LOCAL_C TInt SuicidalTransThread(TAny*)
+    {
+    CTrapCleanup* cleanup = CTrapCleanup::New();
+    if(!cleanup)
+        return KErrNoMemory;
+
+    TRAP_IGNORE(ConnectStartSuicideTransL());
+    //purposely waiting to be killed
+    User::WaitForAnyRequest();
+    return 0;
+    }
+
+LOCAL_C void DEF143352L()
+    {
+    CleanupCDriveL();    
+    __UHEAP_MARK;
+
+    const TUid KLargeReposUid1 ={0xcccccc00};
+    //create on in this thread and start transaction too
+    CRepository* rep1=CRepository::NewL(KLargeReposUid1);
+    User::LeaveIfError(rep1->StartTransaction(CRepository::EConcurrentReadWriteTransaction));
+    
+    //create thread to connect, start transaction on the same repository as previous
+    RThread testThread;
+    _LIT(KThreadName1, "Martin");
+    testThread.Create(KThreadName1, SuicidalTransThread, KDefaultStackSize, KMinHeapSize, 0x100000, NULL);
+
+    TRequestStatus requestStatus;
+    testThread.Logon(requestStatus);
+    testThread.Resume();
+
+    //wait for the first client to complete the start transaction
+    User::After(1000000);
+    
+    //opening another big keyspace to force the eviction(cache size is 100K) both repository is about 78K in the heap
+    //cccccc03 is exactly the same as cccccc00
+    const TUid KLargeReposUid2 ={0xcccccc04};
+    CRepository* rep2=CRepository::NewL(KLargeReposUid2);
+   
+    //now kill the thread we have created
+    testThread.Kill(KErrDied);
+    User::WaitForRequest(requestStatus);
+    TEST2(requestStatus.Int(), KErrDied);
+    
+    //Wait for the session to be cleaned up
+    User::After(1000000);
+    
+    //now current test thread will retry the same connection
+    //at this stage server will panic with kern-exec 3
+    CRepository* rep4=CRepository::NewL(KLargeReposUid1);
+    
+    delete rep1;
+    delete rep2;
+    delete rep4;
+    
+    __UHEAP_MARKEND;
+    }
 	
 LOCAL_C void FuncTestsL()
 	{
-
 	TheTest.Start(_L("DEF053500 - Central repository integer type key entries cannot handle hex values"));
 
 	DEF053500L();
@@ -2857,6 +2920,9 @@
 	TheTest.Next(_L("@SYMTestCaseID:PDS-CENTRALREPOSITORY-UT-4086 PDEF141518: centralrepositorysrv.exe crashes and phone doesn't boot up "));
 	PDEF141519L(); 
 
+	TheTest.Next(_L("@SYMTestCaseID:PDS-CENTRALREPOSITORY-CT-XXXX DEF143352: CentralRepository server crash in CObservable::RefreshTransactorAccessPolicies "));
+	DEF143352L();
+
 	TheTest.End();
 	}
 
--- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/Background.doc	Fri Jan 22 11:06:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-Notes about the Background Only application template
-====================================================
-
-RCS: @(#) $Id: Background.doc,v 1.2 1998/09/14 18:40:03 stanton Exp $
-
-We have included sample code and project files for making a Background-Only
- application (BOA) in Tcl.  This could be used for server processes (like the 
-Tcl Web-Server).  
-
-Files:
-------
-
-* BOA_TclShells.¼    - This is the project file.
-* tclMacBOAAppInit.c - This is the AppInit file for the BOA App.
-* tclMacBOAMain      - This is a replacement for the Tcl_Main for BOA's.
-
-Caveat:
--------
-
-This is an unsupported addition to MacTcl.  The main feature that will certainly
-change is how we handle AppleEvents.  Currently, all the AppleEvent handling is
-done on the Tk side, which is not really right.  Also, there is no way to 
-register your own AppleEvent handlers, which is obviously something that would be 
-useful in a BOA App.  We will address these issues in Tcl8.1.  If you need to 
-register your own AppleEvent Handlers in the meantime, be aware that your code
-will probably break in Tcl8.1.
-
-I will also improve the basic code here based on feedback that I recieve.  This
-is to be considered a first cut only at writing a BOA in Tcl.
-
-Introduction:
--------------
-
-This project makes a double-clickable BOA application.  It obviously needs 
-some Tcl code to get it started.  It will look for this code first in a 
-'TEXT' resource in the application shell whose name is "bgScript.tcl".  If 
-it does not find any such resource, it will look for a file called 
-bgScript.tcl in the application's folder.  Otherwise it will quit with an 
-error.
-
-It creates three files in the application folder to store stdin, stdout & 
-stderr.  They are imaginatively called temp.in, temp.out & temp.err.  They 
-will be opened append, so you do not need to erase them after each use of 
-the BOA.
-
-The app does understand the "quit", and the "doScript" AppleEvents, so you can 
-kill it with the former, and instruct it with the latter.  It also has an 
-aete, so you can target it with Apple's "Script Editor".
-
-For more information on Macintosh BOA's, see the Apple TechNote: 1070.
-
-Notifications:
---------------
-
-BOA's are not supposed to have direct contact with the outside world.  They 
-are, however, allowed to go through the Notification Manager to post 
-alerts.  To this end, I have added a Tcl command called "bgnotify" to the 
-shell, that simply posts a notification through the notification manager.
-
-To use it, say:
-
-bgnotify "Hi, there little buddy"
-
-It will make the system beep, and pop up an annoying message box with the 
-text of the first argument to the command.  While the message is up, Tcl 
-is yielding processor time, but not processing any events.
-
-Errors:
--------
-
-Usually a Tcl background application will have some startup code, opening 
-up a server socket, or whatever, and at the end of this, will use the 
-vwait command to kick off the event loop.  If an error occurs in the 
-startup code, it will kill the application, and a notification of the error 
-will be posted through the Notification Manager.  
-
-If an error occurs in the event handling code after the 
-vwait, the error message will be written to the file temp.err.  However, 
-if you would like to have these errors post a notification as well, just 
-define a proc called bgerror that takes one argument, the error message, 
-and passes that off to "bgnotify", thusly:
-
-proc bgerror {mssg} {
-	bgnotify "A background error has occured\n $mssg"
-}
-
-Support:
---------
-
-If you have any questions, contact me at:
-
-jim.ingham@eng.sun.com
--- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/bugs.doc	Fri Jan 22 11:06:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-Known bug list for Tcl 8.0 for Macintosh
-
-by Ray Johnson
-Sun Microsystems Laboratories
-rjohnson@eng.sun.com
-
-RCS: @(#) $Id: bugs.doc,v 1.4 2000/02/10 08:39:37 jingham Exp $
-
-This was a new feature as of Tcl7.6b1 and as such I'll started with
-a clean slate.  I currently know of no reproducable bugs.  I often
-get vague reports - but nothing I've been able to confirm.  Let
-me know what bugs you find!
-
-The Macintosh version of Tcl passes most all tests in the Tcl
-test suite.  Slower Macs may fail some tests in event.test whose
-timing constraints are too tight.  If other tests fail please report
-them.
-
-Ray
-
-Known bugs in the current release.
-
-* With the socket code you can't use the "localhost" host name.  This
-  is actually a known bug in Apple's MacTcp stack.  However, you can
-  use [info hostname] whereever you would have used "localhost" to 
-  achive the same effect.
-
-* Most socket bugs have been fixed.  We do have a couple of test cases
-  that will hang the Mac, however, and we are still working on them.
-  If you find additional test cases that show crashes please let us
-  know!
-
-* In Tcl 8.2, the new Regexp code seems to be more deeply recursive than
-the older version in Tcl8.0.  As a result, I have had to increase the Stack
-size of Tcl to 1Meg.  If you are not doing regexps with many subexpressions,
-this is probably more stack than you will need.  You can relink with the 
-stack set to 512K, and you will be fine for most purposes.
-* This regexp problem is fixed in Tcl8.3.  If you are going to do complex
-regexp's, it is probably a good idea to keep the stack size big.  But normal
-regexps will not cause crashes.
-
-* The "clock scan -base" command does not work.  The epoch is wrong.
-* The file mtime command does not work when setting the time, it is off
-by 4 years.
--- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/libmoto.doc	Fri Jan 22 11:06:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-Notes about the use of libmoto
-------------------------------
-
-RCS: @(#) $Id: libmoto.doc,v 1.2 1998/09/14 18:40:04 stanton Exp $
-
-First of all, libmoto is not required!  If you don't have it, you
-can simply remove the library reference from the project file and
-everything should compile just fine.
-
-The libmoto library replaces certain functions in the MathLib and
-ANSI libraries.  Motorola has optimized the functions in the library
-to run very fast on the PowerPC.  As I said above, you don't need
-this library, but it does make things faster.
-
-Obtaining Libmoto:
-
-	For more information about Libmoto and how to doanload
-	it, visit the following URL:
-
-    http://www.mot.com/SPS/PowerPC/library/fact_sheet/libmoto.html
-
-	You will need to register for the library.  However, the
-	library is free and you can use it in any commercial product
-	you might have.
-
-Installing Libmoto:
-
-	Just follow the instructions provided by the Motorola 
-	README file.  You need to make sure that the Libmoto
-	library is before the ANSI and MathLib libraries in
-	link order.  Also, you will get several warnings stateing
-	that certain functions have already been defined in 
-	Libmoto.  (These can safely be ignored.)
-
-Finally, you can thank Kate Stewart of Motorola for twisting my
-arm at the Tcl/Tk Conference to provide some support for Libmoto.
-
-Ray Johnson
-
--- a/persistentstorage/sqlite3api/TEST/TCL/tcldistribution/mac/morefiles.doc	Fri Jan 22 11:06:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-Notes about MoreFiles, dnr.c & other non-Tcl source files
----------------------------------------------------------
-
-RCS: @(#) $Id: morefiles.doc,v 1.2 1998/09/14 18:40:04 stanton Exp $
-
-The Macintosh distribution uses several source files that don't
-actually ship with Tcl.  This sometimes causes problems or confusion
-to developers.  This document should help clear up a few things.
-
-dnr.c
------
-
-We have found a way to work around some bugs in dnr.c that 
-Apple has never fixed even though we sent in numerous bug reports.
-The file tclMacDNR.c simply set's some #pragma's and the includes
-the Apple dnr.c file.  This should work the problems that many of
-you have reported with dnr.c.
-
-More Files
-----------
-
-Macintosh Tcl/Tk also uses Jim Luther's very useful package called
-More Files.  More Files fixes many of the broken or underfunctional
-parts of the file system.
-
-More Files can be found on the MetroWerks CD and Developer CD from
-Apple.  You can also down load the latest version from:
-
-	ftp://members.aol.com/JumpLong/
-
-The package can also be found at the home of Tcl/Tk for the mac:
-
-	ftp://ftp.sunlabs.com/pub/tcl/mac/
-
-I used to just link the More Files library in the Tcl projects.  
-However, this caused problems when libraries wern't matched correctly.
-I'm now including the files in the Tcl project directly.  This
-solves the problem of missmatched libraries - but may not always
-compile.
-
-If you get a compiliation error in MoreFiles you need to contact
-Jim Luther.  His email address:
-
-	JumpLong@aol.com
-
-The version of More Files that we use with Tcl/Tk is 1.4.3.  Early
-version may work as well..
-
-Unfortunantly, there is one bug in his library (in 1.4.3).  The bug is
-in the function FSpGetFullPath found in the file FullPath.c.  After
-the call to PBGetCatInfoSync you need to change the line:
-
-    if ( result == noErr )
-
-	to:
-
-    if ( (result == noErr) || (result == fnfErr) )
-
-
-The latest version of More Files is 1.4.6.  Unfortunantly, this
-version has a bug that keeps it from working with shared libraries
-right out of the box.  If you want to use 1.4.6 you can but you will
-need to make the following fix:
-
-	In the file "Opimization.h" in the More Files package you
-	need to remove the line "#pragma internal on".  And in the
-	file "OptimazationEnd.h" you need to remove the line
-	"#pragma internal reset".
-
-Note: the version of MoreFile downloaded from the Sun Tcl/Tk site
-will have the fix included.  (If you want you can send email to
-Jim Luther suggesting that he use Tcl for regression testing!)
-
-Ray Johnson
--- a/traceservices/commsdebugutility/SSVR/comsdbgwriter.cpp	Fri Jan 22 11:06:30 2010 +0200
+++ b/traceservices/commsdebugutility/SSVR/comsdbgwriter.cpp	Tue Jan 26 13:16:24 2010 +0200
@@ -134,8 +134,6 @@
 
 TInt CLogManager::ThreadEntryPoint(TAny* aPtr)
 	{
-	__UHEAP_MARK;
-
 	MLogArrayAccess* arrayAccess = static_cast<MLogArrayAccess*> (aPtr);
 
 	CTrapCleanup* cleanupStack = CTrapCleanup::New();
@@ -148,8 +146,6 @@
 
 	delete cleanupStack;
 
-	__UHEAP_MARKEND;
-
 	return err;
 	}
 
Binary file traceservices/tracefw/integ_test/documentation/backup/OSTv2_TestSuite_How_To_v0.1.doc has changed