- const sys::FileStatus* objStatus;
- objStatus = uniqueObjPath.getFileStatus(false, &errMsg);
- if ( objStatus != NULL ) {
- *length = objStatus->getSize();
- // use malloc() because caller will own this buffer and free() it
- buffer = ::malloc(*length);
- if ( buffer != NULL ) {
- int fd = ::open(uniqueObjPath.c_str(), O_RDONLY, 0);
- if ( fd != -1 ) {
- // read object file contents into buffer
- if ( ::read(fd, buffer, *length) != (ssize_t)*length ) {
- errMsg = "error reading object file";
- free(buffer);
- buffer = NULL;
- }
- close(fd);
- }
- else {
- errMsg = "error opening object file";
- free(buffer);
- buffer = NULL;
- }
- }
- else {
- errMsg = "error mallocing space for object file";
- }
- }
- else {
- errMsg = "error stat'ing object file";
- }
+ _nativeObjectFile = MemoryBuffer::getFile(&uniqueObjStr[0],
+ uniqueObjStr.size(), &errMsg);