mirror of
				https://github.com/c64scene-ar/llvm-6502.git
				synced 2025-10-31 08:16:47 +00:00 
			
		
		
		
	For PR351:
Move non-portable FDHandle class to its only user: lib/Debugger git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19106 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
		| @@ -34,44 +34,6 @@ bool DiffFiles(const std::string &FileA, const std::string &FileB, | ||||
| /// | ||||
| void MoveFileOverIfUpdated(const std::string &New, const std::string &Old); | ||||
|   | ||||
| /// FDHandle - Simple handle class to make sure a file descriptor gets closed | ||||
| /// when the object is destroyed.  This handle acts similarly to an | ||||
| /// std::auto_ptr, in that the copy constructor and assignment operators | ||||
| /// transfer ownership of the handle.  This means that FDHandle's do not have | ||||
| /// value semantics. | ||||
| /// | ||||
| class FDHandle { | ||||
|   int FD; | ||||
| public: | ||||
|   FDHandle() : FD(-1) {} | ||||
|   FDHandle(int fd) : FD(fd) {} | ||||
|   FDHandle(FDHandle &RHS) : FD(RHS.FD) { | ||||
|     RHS.FD = -1;       // Transfer ownership | ||||
|   } | ||||
|  | ||||
|   ~FDHandle() throw(); | ||||
|  | ||||
|   /// get - Get the current file descriptor, without releasing ownership of it. | ||||
|   int get() const { return FD; } | ||||
|   operator int() const { return FD; } | ||||
|  | ||||
|   FDHandle &operator=(int fd) throw(); | ||||
|  | ||||
|   FDHandle &operator=(FDHandle &RHS) { | ||||
|     int fd = RHS.FD; | ||||
|     RHS.FD = -1;       // Transfer ownership | ||||
|     return operator=(fd); | ||||
|   } | ||||
|  | ||||
|   /// release - Take ownership of the file descriptor away from the FDHandle | ||||
|   /// object, so that the file is not closed when the FDHandle is destroyed. | ||||
|   int release() { | ||||
|     int Ret = FD; | ||||
|     FD = -1; | ||||
|     return Ret; | ||||
|   } | ||||
| }; | ||||
|  | ||||
|   /// FileRemover - This class is a simple object meant to be stack allocated. | ||||
|   /// If an exception is thrown from a region, the object removes the filename | ||||
|   /// specified (if deleteIt is true). | ||||
|   | ||||
| @@ -63,17 +63,3 @@ void llvm::MoveFileOverIfUpdated(const std::string &New, | ||||
|     std::remove(New.c_str()); | ||||
|   }   | ||||
| } | ||||
|  | ||||
| //===----------------------------------------------------------------------===// | ||||
| // FDHandle class implementation | ||||
| // | ||||
|  | ||||
| FDHandle::~FDHandle() throw() { | ||||
|   if (FD != -1) close(FD); | ||||
| } | ||||
|  | ||||
| FDHandle &FDHandle::operator=(int fd) throw() { | ||||
|   if (FD != -1) close(FD); | ||||
|   FD = fd; | ||||
|   return *this; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user