Chaged codes about iterator etc

This commit is contained in:
Takeshi Nakatani 2015-06-13 03:27:07 +00:00
parent 0ecf4aa6b4
commit fe3abed9f0

View File

@ -2973,17 +2973,19 @@ static int s3fs_getxattr(const char* path, const char* name, char* value, size_t
} }
// get xattrs // get xattrs
if(meta.end() == meta.find("x-amz-meta-xattr")){ headers_t::iterator hiter = meta.find("x-amz-meta-xattr");
if(meta.end() == hiter){
// object does not have xattrs // object does not have xattrs
return -ENOATTR; return -ENOATTR;
} }
string strxattrs = meta["x-amz-meta-xattr"]; string strxattrs = hiter->second;
parse_xattrs(strxattrs, xattrs); parse_xattrs(strxattrs, xattrs);
// search name // search name
string strname = name; string strname = name;
if(xattrs.end() == xattrs.find(strname)){ xattrs_t::iterator xiter = xattrs.find(strname);
if(xattrs.end() == xiter){
// not found name in xattrs // not found name in xattrs
free_xattrs(xattrs); free_xattrs(xattrs);
return -ENOATTR; return -ENOATTR;
@ -2992,9 +2994,9 @@ static int s3fs_getxattr(const char* path, const char* name, char* value, size_t
// decode // decode
size_t length = 0; size_t length = 0;
unsigned char* pvalue = NULL; unsigned char* pvalue = NULL;
if(NULL != xattrs[strname]){ if(NULL != xiter->second){
length = xattrs[strname]->length; length = xiter->second->length;
pvalue = xattrs[strname]->pvalue; pvalue = xiter->second->pvalue;
} }
if(0 < size){ if(0 < size){
@ -3143,7 +3145,7 @@ static int s3fs_removexattr(const char* path, const char* name)
xattrs.erase(strname); xattrs.erase(strname);
// build new xattr // build new xattr
if(0 < xattrs.size()){ if(!xattrs.empty()){
meta["x-amz-meta-xattr"] = build_xattrs(xattrs); meta["x-amz-meta-xattr"] = build_xattrs(xattrs);
}else{ }else{
meta.erase("x-amz-meta-xattr"); meta.erase("x-amz-meta-xattr");