mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-16 17:19:41 +00:00
* lisp/net/soap-client.el (soap-type-of): Optimize for Emacs≥26
This commit is contained in:
parent
1c79d15863
commit
ba6cc1d04c
@ -685,14 +685,17 @@ This is a specialization of `soap-decode-type' for
|
||||
(anyType (soap-decode-any-type node))
|
||||
(Array (soap-decode-array node))))))
|
||||
|
||||
(defun soap-type-of (element)
|
||||
"Return the type of ELEMENT."
|
||||
;; Support Emacs < 26 byte-code running in Emacs >= 26 sessions
|
||||
;; (Bug#31742).
|
||||
(let ((type (type-of element)))
|
||||
(if (eq type 'vector)
|
||||
(aref element 0) ; For Emacs 25 and earlier.
|
||||
type)))
|
||||
(defalias 'soap-type-of
|
||||
(if (eq 'soap-xs-basic-type (type-of (make-soap-xs-basic-type)))
|
||||
;; `type-of' in Emacs ≥ 26 already does what we need.
|
||||
#'type-of
|
||||
;; For Emacs < 26, use our own function.
|
||||
(lambda (element)
|
||||
"Return the type of ELEMENT."
|
||||
(if (vectorp element)
|
||||
(aref element 0) ;Assume this vector is actually a struct!
|
||||
;; This should never happen.
|
||||
(type-of element)))))
|
||||
|
||||
;; Register methods for `soap-xs-basic-type'
|
||||
(let ((tag (soap-type-of (make-soap-xs-basic-type))))
|
||||
@ -2881,6 +2884,8 @@ reference multiRef parts which are external to RESPONSE-NODE."
|
||||
|
||||
;;;; SOAP type encoding
|
||||
|
||||
;; FIXME: Use `cl-defmethod' (but this requires Emacs-25).
|
||||
|
||||
(defun soap-encode-attributes (value type)
|
||||
"Encode XML attributes for VALUE according to TYPE.
|
||||
This is a generic function which determines the attribute encoder
|
||||
|
Loading…
Reference in New Issue
Block a user