Skip to content

Commit

Permalink
Some encodings were assumed to be default and, thus, were not made
Browse files Browse the repository at this point in the history
persistent.
  • Loading branch information
Andrei Zmievski committed Apr 17, 2006
1 parent 7330c32 commit cfaf640
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
3 changes: 3 additions & 0 deletions ext/soap/php_encoding.c
Expand Up @@ -211,6 +211,9 @@ encode defaultEncoding[] = {
{{END_KNOWN_TYPES, NULL, NULL, NULL}, guess_zval_convert, guess_xml_convert}
};

int numDefaultEncodings = sizeof(defaultEncoding)/sizeof(encode);


void whiteSpace_replace(char* str)
{
while (*str != '\0') {
Expand Down
1 change: 1 addition & 0 deletions ext/soap/php_encoding.h
Expand Up @@ -222,5 +222,6 @@ void delete_encoder(void *handle);
void delete_encoder_persistent(void *handle);

extern encode defaultEncoding[];
extern int numDefaultEncodings;

#endif
10 changes: 5 additions & 5 deletions ext/soap/php_sdl.c
Expand Up @@ -2292,7 +2292,7 @@ static void make_persistent_sdl_type_ref(sdlTypePtr *type, HashTable *ptr_map, H
{
sdlTypePtr *tmp;

if (zend_hash_find(ptr_map, (char *)(*type), sizeof(sdlTypePtr), (void**)&tmp) == SUCCESS) {
if (zend_hash_find(ptr_map, (char *)type, sizeof(sdlTypePtr), (void**)&tmp) == SUCCESS) {
*type = *tmp;
} else {
zend_hash_next_index_insert(bp_types, (void*)&type, sizeof(sdlTypePtr*), NULL);
Expand All @@ -2305,11 +2305,11 @@ static void make_persistent_sdl_encoder_ref(encodePtr *enc, HashTable *ptr_map,
encodePtr *tmp;

/* do not process defaultEncoding's here */
if ((*enc)->details.sdl_type == NULL) {
if ((*enc) >= defaultEncoding && (*enc) < defaultEncoding + numDefaultEncodings) {
return;
}

if (zend_hash_find(ptr_map, (char *)(*enc), sizeof(encodePtr), (void**)&tmp) == SUCCESS) {
if (zend_hash_find(ptr_map, (char *)enc, sizeof(encodePtr), (void**)&tmp) == SUCCESS) {
*enc = *tmp;
} else {
zend_hash_next_index_insert(bp_encoders, (void*)&enc, sizeof(encodePtr*), NULL);
Expand Down Expand Up @@ -2513,7 +2513,7 @@ static sdlAttributePtr make_persistent_sdl_attribute(sdlAttributePtr attr, HashT
}

/* we do not want to process defaultEncoding's here */
if (pattr->encode && pattr->encode->details.sdl_type) {
if (pattr->encode) {
make_persistent_sdl_encoder_ref(&pattr->encode, ptr_map, bp_encoders);
}

Expand Down Expand Up @@ -2625,7 +2625,7 @@ static sdlTypePtr make_persistent_sdl_type(sdlTypePtr type, HashTable *ptr_map,
}

/* we do not want to process defaultEncoding's here */
if (ptype->encode && ptype->encode->details.sdl_type) {
if (ptype->encode) {
make_persistent_sdl_encoder_ref(&ptype->encode, ptr_map, bp_encoders);
}

Expand Down

0 comments on commit cfaf640

Please sign in to comment.